Como Usar APIs do Azure: Guia Completo

Ashley Innocent

Ashley Innocent

24 março 2026

Como Usar APIs do Azure: Guia Completo

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.

💡
Se você está desenvolvendo com APIs do Azure, o Apidog te ajuda a projetar, testar e documentar essas integrações. Você pode salvar suas chamadas de API do Azure como coleções, adicionar variáveis de ambiente para diferentes assinaturas e validar se as respostas correspondem aos esquemas esperados. Ele detecta erros de configuração antes que cheguem à produção.
Baixar aplicativo

Teste suas APIs do Azure com Apidog - grátis

Ao final deste guia, você será capaz de:

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.

Fluxo de autenticação do Azure Active Directory

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:

  1. Registre um aplicativo no Azure AD (Entra ID)
  2. Obtenha um ID de cliente e um segredo de cliente
  3. Solicite um token de acesso do endpoint de token do Azure
  4. 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á:

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.

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:

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:

  1. Salvar estes como solicitações reutilizáveis
  2. Usar variáveis de ambiente para nomes de conta e tokens
  3. 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:

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:

  1. Verifique se o token não expirou (expires_in é tipicamente 3600 segundos)
  2. Verifique se o escopo corresponde à API que você está chamando
  3. 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:

  1. Vá para o recurso no Portal do Azure
  2. Verifique o Controle de acesso (IAM)
  3. 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:

  1. Verifique o nome do recurso na URL
  2. Verifique a versão da API na string de consulta
  3. 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:

  1. Implemente um recuo exponencial (exponential backoff)
  2. Verifique o cabeçalho x-ms-ratelimit-remaining
  3. 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:

Seus próximos passos:

  1. Registre um aplicativo no Azure AD e obtenha suas credenciais
  2. Solicite um token de acesso usando o fluxo de credenciais de cliente
  3. Faça sua primeira chamada de API do Azure Storage
  4. Salve essa chamada no Apidog como uma solicitação reutilizável
  5. 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:

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:

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs