TL;DR
As APIs do Azure permitem que você acesse programaticamente os serviços em nuvem da Microsoft - armazenamento, computação, bancos de dados, IA e muito mais. Você se autentica usando o Azure Active Directory (Entra ID), obtém um token de acesso e chama endpoints REST. Para testes e documentação, use o Apidog para salvar suas chamadas de API, validar respostas contra esquemas e compartilhar coleções com sua equipe.
Introdução
O Microsoft Azure possui mais de 200 serviços. Cada um tem uma API. A maioria dos desenvolvedores utilizará pelo menos alguns deles - talvez Azure Blob Storage para arquivos, Azure Functions para serverless ou Azure OpenAI para LLMs.
O problema? A documentação do Azure é vasta e dispersa. Você pode passar horas procurando o endpoint certo, entendendo a autenticação e depurando por que sua solicitação retorna 401 Unauthorized.
Este guia foca nas APIs que você realmente usará. Não nos 200 serviços. Nos 5-10 que impulsionam a maioria das aplicações. Você aprenderá padrões de autenticação, armadilhas comuns e como testar suas integrações do Azure antes de implantá-las.
Teste suas APIs do Azure com Apidog - grátis
Ao final deste guia, você será capaz de:
- Configurar a autenticação do Azure corretamente (a principal fonte de erros)
- Chamar APIs de Armazenamento, Computação e IA do Azure com exemplos funcionais
- Depurar erros comuns das APIs do Azure
- Testar e documentar suas integrações do Azure com Apidog
O problema da autenticação (e como resolvê-lo)
Toda chamada de API do Azure precisa de autenticação. Erre isso e todo o resto falha. É aqui que a maioria dos desenvolvedores fica presa.

Azure Active Directory / Microsoft Entra ID
O Azure usa OAuth 2.0 para autenticação de API. Você não envia um nome de usuário e senha. Você envia um token de acesso que comprova quem você é e o que você pode fazer.
O fluxo é o seguinte:
- Registre um aplicativo no Azure AD (Entra ID)
- Obtenha um ID de cliente e um segredo de cliente
- Solicite um token de acesso do endpoint de token do Azure
- Inclua esse token em suas chamadas de API
Passo 1: Registrar um aplicativo
Vá para o Portal do Azure → Microsoft Entra ID → Registros de aplicativo → Novo registro.
Dê um nome, selecione “Contas somente neste diretório organizacional” para aplicativos internos e registre. Você obterá:
- ID do Aplicativo (cliente):
12345678-1234-1234-1234-123456789abc - ID do Diretório (locatário):
87654321-4321-4321-4321-cba987654321
Passo 2: Criar um segredo de cliente
No registro do seu aplicativo, vá para Certificados e segredos → Novo segredo do cliente. Copie o valor do segredo imediatamente. Você não o verá novamente.
- Segredo do cliente:
abc123~DEF456-ghi789
Passo 3: Atribuir permissões
Vá para Permissões de API → Adicionar uma permissão. Para Azure Storage, selecione “Azure Storage” → “user_impersonation”. Para APIs de Gerenciamento do Azure, selecione “Azure Service Management” → “user_impersonation”.
Passo 4: Obter um token de acesso
curl -X POST "https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id={client-id}" \
-d "client_secret={client-secret}" \
-d "scope=https://storage.azure.com/.default" \
-d "grant_type=client_credentials"
Resposta:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...",
"expires_in": 3599,
"token_type": "Bearer"
}
Passo 5: Usar o token
curl -X GET "https://youraccount.blob.core.windows.net/container?restype=container&comp=list" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs..." \
-H "x-ms-version: 2023-01-03"
Usando o SDK do Azure em vez de HTTP bruto
Para código de produção, use o SDK do Azure. Ele lida com a atualização de tokens, retentativas e serialização.
import { DefaultAzureCredential } from '@azure/identity'
import { BlobServiceClient } from '@azure/storage-blob'
// Usa automaticamente seu login do Azure CLI ou variáveis de ambiente
const credential = new DefaultAzureCredential()
const blobServiceClient = new BlobServiceClient(
'https://youraccount.blob.core.windows.net',
credential
)
// Listar contêineres
for await (const container of blobServiceClient.listContainers()) {
console.log(container.name)
}
Mas para testes, depuração e documentação, você precisa entender as chamadas HTTP brutas. É aí que o Apidog entra.
APIs do Azure Storage
O Azure Storage é o serviço do Azure mais comumente usado. Ele inclui:
- Blob Storage: Arquivos, imagens, backups
- Queue Storage: Filas de mensagens
- Table Storage: Armazenamento de chave-valor NoSQL
- File Storage: Compartilhamentos de arquivos SMB
API do Blob Storage
Listar contêineres:
GET https://{account}.blob.core.windows.net/?comp=list
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Criar um contêiner:
PUT https://{account}.blob.core.windows.net/{container}?restype=container
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Fazer upload de um blob:
PUT https://{account}.blob.core.windows.net/{container}/{blob}
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Content-Type: text/plain
Olá, Azure Blob Storage!
Baixar um blob:
GET https://{account}.blob.core.windows.net/{container}/{blob}
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Testando com Apidog
As APIs do Azure Storage exigem cabeçalhos específicos (x-ms-version, formato de autorização correto). O Apidog te ajuda a:
- Salvar estes como solicitações reutilizáveis
- Usar variáveis de ambiente para nomes de conta e tokens
- Validar se as respostas correspondem aos esquemas esperados
Projete e teste APIs do Azure Storage com Apidog
APIs do Azure Compute
O Azure Compute permite gerenciar máquinas virtuais, contêineres e funções serverless.
API do Azure Functions
O Azure Functions possui uma API REST para operações de gerenciamento.
Listar funções em um aplicativo de função:
GET https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{app-name}/functions?api-version=2023-01-01
Authorization: Bearer {management-token}
Disparar uma função (gatilho HTTP):
POST https://{app-name}.azurewebsites.net/api/{function-name}
Content-Type: application/json
{
"name": "Azure",
"message": "Olá da API"
}
Obter chaves de função:
POST https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{app-name}/functions/{function-name}/listKeys?api-version=2023-01-01
Authorization: Bearer {management-token}
API de Máquinas Virtuais
Listar VMs:
GET https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/virtualMachines?api-version=2023-07-01
Authorization: Bearer {management-token}
Iniciar uma VM:
POST https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachines/{vm-name}/start?api-version=2023-07-01
Authorization: Bearer {management-token}
Parar uma VM:
POST https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachines/{vm-name}/powerOff?api-version=2023-07-01
Authorization: Bearer {management-token}
APIs de Serviços de IA do Azure
O Azure hospeda modelos OpenAI e fornece serviços cognitivos para visão, fala e linguagem.
API do Azure OpenAI
Obter conclusões:
POST https://{resource-name}.openai.azure.com/openai/deployments/{deployment-id}/chat/completions?api-version=2024-02-15-preview
api-key: {your-api-key}
Content-Type: application/json
{
"messages": [
{"role": "system", "content": "Você é um assistente útil."},
{"role": "user", "content": "O que é Azure?"}
],
"max_tokens": 500
}
Listar implantações:
GET https://{resource-name}.openai.azure.com/openai/deployments?api-version=2024-02-15-preview
api-key: {your-api-key}
API de Serviços Cognitivos
Análise de Texto - Sentimento:
POST https://{resource-name}.cognitiveservices.azure.com/text/analytics/v3.1/sentiment
Ocp-Apim-Subscription-Key: {subscription-key}
Content-Type: application/json
{
"documents": [
{
"id": "1",
"language": "en",
"text": "Eu amo as APIs do Azure. Elas funcionam muito bem!"
}
]
}
Visão Computacional - Analisar Imagem:
POST https://{resource-name}.cognitiveservices.azure.com/vision/v3.2/analyze?visualFeatures=Description,Tags
Ocp-Apim-Subscription-Key: {subscription-key}
Content-Type: application/octet-stream
[dados binários da imagem]
Testando APIs do Azure com Apidog
As APIs do Azure têm autenticação complexa e exigem cabeçalhos precisos. Testá-las manualmente com curl se torna propenso a erros rapidamente. O Apidog resolve isso por meio de:
1. Gerenciamento de ambiente
As APIs do Azure abrangem vários endpoints:
management.azure.compara plano de controle{account}.blob.core.windows.netpara armazenamento{resource}.openai.azure.compara IA
Crie ambientes no Apidog para cada um:
# Desenvolvimento
MANAGEMENT_TOKEN: eyJ0eXAiOiJKV1Qi...
STORAGE_ACCOUNT: devstorage
OPENAI_RESOURCE: dev-openai
# Produção
MANAGEMENT_TOKEN: eyJ0eXAiOiJKV1Qi...
STORAGE_ACCOUNT: prodstorage
OPENAI_RESOURCE: prod-openai
2. Scripts de pré-solicitação para atualização de token
Tokens do Azure expiram após 1 hora. Adicione um script de pré-solicitação:
// Verifica se o token expirou
const tokenExpiry = pm.environment.get('token_expiry')
const now = Date.now() / 1000
if (!tokenExpiry || now >= tokenExpiry) {
// Solicita um novo token
const response = await pm.sendRequest({
url: 'https://login.microsoftonline.com/' + pm.environment.get('tenant_id') + '/oauth2/v2.0/token',
method: 'POST',
header: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: {
mode: 'urlencoded',
urlencoded: [
{ key: 'client_id', value: pm.environment.get('client_id') },
{ key: 'client_secret', value: pm.environment.get('client_secret') },
{ key: 'scope', value: 'https://management.azure.com/.default' },
{ key: 'grant_type', value: 'client_credentials' }
]
}
})
const data = response.json()
pm.environment.set('management_token', data.access_token)
pm.environment.set('token_expiry', now + data.expires_in)
}
3. Validação de resposta
Valide se as respostas do Azure correspondem aos esquemas esperados:
// Testa se a lista de blobs retorna a estrutura esperada
pm.test('Response has containers', () => {
const xml = pm.response.text()
pm.expect(xml).to.include('<Containers>')
pm.expect(xml).to.include('<Container>')
})
pm.test('A resposta é um XML válido', () => {
pm.response.to.be.ok
pm.response.to.have.header('Content-Type', 'application/xml')
})
Comece a testar APIs do Azure com Apidog - grátis
Erros comuns e como corrigi-los
401 Não Autorizado
Causa: Token inválido ou expirado.
Correção:
- Verifique se o token não expirou (expires_in é tipicamente 3600 segundos)
- Verifique se o escopo corresponde à API que você está chamando
- Garanta que o registro do aplicativo tenha as permissões corretas
403 Proibido
Causa: Token é válido, mas não possui permissões.
Correção:
- Vá para o recurso no Portal do Azure
- Verifique o Controle de acesso (IAM)
- Adicione uma atribuição de função para o service principal do seu aplicativo
404 Não Encontrado
Causa: Endpoint errado ou recurso não existe.
Correção:
- Verifique o nome do recurso na URL
- Verifique a versão da API na string de consulta
- Garanta que o recurso exista no grupo de recursos correto
429 Muitas Solicitações
Causa: Você atingiu os limites de taxa do Azure.
Correção:
- Implemente um recuo exponencial (exponential backoff)
- Verifique o cabeçalho
x-ms-ratelimit-remaining - Considere agrupar as solicitações (batching)
async function callWithRetry(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn()
} catch (error) {
if (error.statusCode === 429) {
const delay = Math.pow(2, i) * 1000
await new Promise(resolve => setTimeout(resolve, delay))
} else {
throw error
}
}
}
}
Alternativas e comparações
| Recurso | APIs do Azure | APIs da AWS | APIs do GCP |
|---|---|---|---|
| Autenticação | Azure AD (OAuth 2.0) | IAM (Sig v4) | OAuth 2.0 |
| Qualidade do SDK | Excelente | Excelente | Excelente |
| Documentação | Abrangente, mas dispersa | Específica do serviço | Específica do serviço |
| Limite de taxa | Por assinatura | Por serviço | Por projeto |
| Camada gratuita | 12 meses + sempre grátis | 12 meses | Sempre grátis + créditos |
A autenticação do Azure é mais complexa do que a abordagem baseada em assinatura da AWS, mas se integra melhor com sistemas de identidade corporativos.
Casos de uso no mundo real
Plataforma de E-commerce. Uma alternativa ao Shopify usa Azure Blob Storage para imagens de produtos, Azure Functions para webhooks de processamento de pedidos e Azure OpenAI para descrições de produtos. Eles testam todas as chamadas de API no Apidog antes de implantar as mudanças.
SaaS de Saúde. Um sistema de registros médicos usa Azure Cosmos DB para dados de pacientes, Azure Functions para processamento de mensagens HL7 e Azure Key Vault para segredos. O teste de API garante a conformidade com HIPAA, validando cada esquema de resposta.
Startup de IA. Uma empresa que constrói agentes de IA usa Azure OpenAI para chamadas LLM, Azure Storage para dados de treinamento e Azure Container Apps para implantação. Eles usam o Apidog para simular APIs do Azure durante o desenvolvimento local.
Conclusão
Aqui está o que você aprendeu:
- A autenticação do Azure usa tokens OAuth 2.0 do Azure AD (Entra ID)
- As APIs de Armazenamento exigem o cabeçalho
x-ms-versione tokens Bearer adequados - As APIs de Computação usam o endpoint do Azure Resource Manager
- Os serviços de IA usam chaves de API ou tokens AAD dependendo do serviço
- Teste e documente suas integrações do Azure com Apidog
Seus próximos passos:
- Registre um aplicativo no Azure AD e obtenha suas credenciais
- Solicite um token de acesso usando o fluxo de credenciais de cliente
- Faça sua primeira chamada de API do Azure Storage
- Salve essa chamada no Apidog como uma solicitação reutilizável
- Crie uma coleção para as APIs do Azure do seu projeto
Teste APIs do Azure com Apidog - grátis
FAQ
Qual a diferença entre Azure AD e Microsoft Entra ID?São a mesma coisa. A Microsoft renomeou o Azure Active Directory para Microsoft Entra ID em 2023. Você verá ambos os nomes na documentação. Use Entra ID ao criar nova documentação, mas saiba que Azure AD ainda é comum em artigos e códigos mais antigos.
Como obtenho uma chave de API para o Azure OpenAI?Vá para o Portal do Azure → Azure OpenAI → seu recurso → Chaves e Endpoint. Você verá duas chaves. Ambas funcionam. Regenere-as periodicamente por segurança. Diferente da API pública do OpenAI, o Azure OpenAI requer uma assinatura do Azure e a implantação de um recurso primeiro.
Qual a diferença entre management.azure.com e os endpoints específicos do serviço?management.azure.com é o endpoint do Azure Resource Manager. Ele é para operações CRUD em recursos do Azure (criar uma VM, excluir uma conta de armazenamento). Os endpoints específicos do serviço ({account}.blob.core.windows.net, {resource}.openai.azure.com) são para usar esses recursos (fazer upload de um arquivo, gerar texto). Você precisa de tokens diferentes para cada um.
Quanto tempo duram os tokens de acesso do Azure?Tipicamente 1 hora (3600 segundos). Você pode solicitar um novo token antes que o antigo expire. Use o campo `expires_in` da resposta do token para saber quando atualizar. Não solicite um novo token em cada chamada de API - isso é ineficiente.
Posso usar identidades gerenciadas em vez de segredos de cliente?Sim, e você deve usá-las para cargas de trabalho de produção executadas no Azure. As identidades gerenciadas eliminam a necessidade de armazenar segredos de cliente. Elas funcionam com VMs do Azure, Functions, Container Apps e AKS. Para desenvolvimento local, use o Azure CLI (`az login`) ou variáveis de ambiente com segredos de cliente.
Por que minha chamada de API funciona no Postman, mas falha no código?Verifique os cabeçalhos. As APIs do Azure diferenciam maiúsculas de minúsculas para nomes de cabeçalhos. O Postman pode estar adicionando cabeçalhos que você não percebeu. Compare a solicitação bruta do Postman com seu código usando uma ferramenta como Fiddler ou a inspeção de solicitação do Apidog.
Como testo APIs do Azure localmente sem uma assinatura do Azure?Você não pode testar completamente sem uma assinatura, mas pode usar os emuladores locais do Azure:
- Azurite para Azure Storage
- Azure Functions Core Tools para Functions
- Use o Apidog para simular respostas de API do Azure
Qual a melhor forma de lidar com erros da API do Azure?O Azure retorna JSON de erro detalhado. Analise os campos `error.code` e `error.message`. Códigos comuns:
- `AuthenticationFailed` - verifique seu token
- `ResourceNotFound` - verifique o nome do recurso
- `OperationNotAllowed` - verifique os limites da sua assinatura
