TL;DR
Las API de Azure permiten el acceso programático a los servicios en la nube de Microsoft: almacenamiento, computación, bases de datos, IA y más. Se autentica usando Azure Active Directory (Entra ID), obtiene un token de acceso y hace llamadas a los endpoints REST. Para pruebas y documentación, use Apidog para guardar sus llamadas, validar respuestas contra esquemas y compartir colecciones con su equipo.
Introducción
Microsoft Azure ofrece más de 200 servicios, cada uno con su propia API. Como desarrollador, probablemente necesitará interactuar con algunos de estos servicios, como Azure Blob Storage para archivos, Azure Functions para serverless o Azure OpenAI para modelos LLM.
El mayor reto es la documentación: es extensa y dispersa, lo que puede hacer perder tiempo buscando endpoints, configurando la autenticación adecuada y depurando errores como 401 Unauthorized.
Esta guía se enfoca en las API más relevantes para proyectos reales — no en los 200 servicios, sino en los 5-10 que impulsan la mayoría de las aplicaciones. Aprenderá cómo implementar la autenticación, resolver errores frecuentes y probar integraciones con Azure antes del despliegue.
💡 Tip: Si desarrolla con APIs de Azure, Apidog le ayuda a diseñar, probar y documentar integraciones. Puede guardar sus llamadas como colecciones, usar variables de entorno para diferentes suscripciones y validar respuestas contra esquemas. Así detecta errores de configuración antes de producción.
Al finalizar esta guía, podrá:
- Configurar la autenticación de Azure correctamente (el error más común)
- Llamar a las API de Azure Storage, Compute y AI con ejemplos prácticos
- Depurar errores comunes de la API de Azure
- Probar y documentar sus integraciones de Azure con Apidog
El problema de la autenticación (y cómo resolverlo)
Cada llamada a la API de Azure requiere autenticación. Si la configuración es incorrecta, todo lo demás falla. Es el principal punto de bloqueo para muchos desarrolladores.
Azure Active Directory / Microsoft Entra ID
Azure utiliza OAuth 2.0 para autenticar llamadas a las API. No se envía usuario y contraseña, sino un token de acceso que prueba identidad y permisos.
Flujo básico:
- Registre una aplicación en Azure AD (Entra ID)
- Obtenga un ID de cliente y un secreto de cliente
- Solicite un token de acceso al endpoint de Azure
- Incluya el token en cada solicitud a la API
Paso 1: Registrar una aplicación
- Azure Portal → Microsoft Entra ID → Registros de aplicaciones → Nuevo registro
- Nombre la app, seleccione "Cuentas en este directorio organizacional solamente" y regístrela
- Obtendrá:
- ID de aplicación (cliente):
12345678-1234-1234-1234-123456789abc - ID de directorio (inquilino):
87654321-4321-4321-4321-cba987654321
- ID de aplicación (cliente):
Paso 2: Crear un secreto de cliente
- En el registro de la app: Certificados y secretos → Nuevo secreto de cliente
- Copie el valor del secreto inmediatamente (no podrá volver a verlo)
- Secreto de cliente:
abc123~DEF456-ghi789
- Secreto de cliente:
Paso 3: Asignar permisos
- Permisos de API → Agregar un permiso
- Para Storage: "Azure Storage" → "user_impersonation"
- Para administración: "Azure Service Management" → "user_impersonation"
Paso 4: Obtener un token de acceso
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"
Respuesta:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...",
"expires_in": 3599,
"token_type": "Bearer"
}
Paso 5: Usar el 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"
Uso del SDK de Azure en vez de HTTP puro
Para código de producción, use el SDK de Azure: gestiona la actualización de tokens, reintentos y serialización.
import { DefaultAzureCredential } from '@azure/identity'
import { BlobServiceClient } from '@azure/storage-blob'
// Usa automáticamente el inicio de sesión de Azure CLI o variables de entorno
const credential = new DefaultAzureCredential()
const blobServiceClient = new BlobServiceClient(
'https://youraccount.blob.core.windows.net',
credential
)
// Listar contenedores
for await (const container of blobServiceClient.listContainers()) {
console.log(container.name)
}
Pero para probar, depurar y documentar, es fundamental entender las llamadas HTTP directas. Ahí es donde Apidog resulta útil.
API de Azure Storage
Azure Storage es uno de los servicios más utilizados e incluye:
- Blob Storage: Archivos, imágenes, backups
- Queue Storage: Colas de mensajes
- Table Storage: Almacén NoSQL clave-valor
- File Storage: Comparticiones SMB
API de Blob Storage
Listar contenedores:
GET https://{account}.blob.core.windows.net/?comp=list
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Crear un contenedor:
PUT https://{account}.blob.core.windows.net/{container}?restype=container
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Subir un blob:
PUT https://{account}.blob.core.windows.net/{container}/{blob}
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Content-Type: text/plain
Hello, Azure Blob Storage!
Descargar un blob:
GET https://{account}.blob.core.windows.net/{container}/{blob}
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Pruebas con Apidog
Las API de Azure Storage requieren encabezados específicos (x-ms-version, autorización). Con Apidog puede:
- Guardar solicitudes reutilizables
- Usar variables de entorno para cuentas y tokens
- Validar respuestas según esquemas esperados
Diseñe y pruebe las API de Azure Storage de forma eficiente.
API de Azure Compute
Azure Compute permite administrar máquinas virtuales, contenedores y funciones serverless.
API de Azure Functions
Listar funciones en una app de funciones:
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}
Activar una función (HTTP trigger):
POST https://{app-name}.azurewebsites.net/api/{function-name}
Content-Type: application/json
{
"name": "Azure",
"message": "Hello from API"
}
Obtener claves de función:
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 Virtuales
Listar VM:
GET https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/virtualMachines?api-version=2023-07-01
Authorization: Bearer {management-token}
Iniciar una 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}
Detener una 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}
API de Servicios de IA de Azure
Azure ofrece modelos OpenAI y servicios cognitivos (visión, voz, lenguaje).
API de Azure OpenAI
Obtener completaciones:
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": "You are a helpful assistant."},
{"role": "user", "content": "What is Azure?"}
],
"max_tokens": 500
}
Listar implementaciones:
GET https://{resource-name}.openai.azure.com/openai/deployments?api-version=2024-02-15-preview
api-key: {your-api-key}
API de Servicios Cognitivos
Text Analytics - Sentimiento:
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": "I love Azure APIs. They work great!"
}
]
}
Computer Vision - Analizar imagen:
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
[binary image data]
Pruebas de API de Azure con Apidog
Las API de Azure tienen autenticación compleja y requieren encabezados precisos. Probarlas manualmente con curl es propenso a errores. Con Apidog puede automatizar:
1. Gestión de entornos
Las API de Azure involucran múltiples endpoints:
-
management.azure.compara administración -
{account}.blob.core.windows.netpara almacenamiento -
{resource}.openai.azure.compara IA
Cree entornos en Apidog para cada uno:
# Desarrollo
MANAGEMENT_TOKEN: eyJ0eXAiOiJKV1Qi...
STORAGE_ACCOUNT: devstorage
OPENAI_RESOURCE: dev-openai
# Producción
MANAGEMENT_TOKEN: eyJ0eXAiOiJKV1Qi...
STORAGE_ACCOUNT: prodstorage
OPENAI_RESOURCE: prod-openai
2. Scripts de pre-solicitud para actualización de tokens
Los tokens expiran tras una hora. Use un script de pre-solicitud:
// Comprobar si el token ha caducado
const tokenExpiry = pm.environment.get('token_expiry')
const now = Date.now() / 1000
if (!tokenExpiry || now >= tokenExpiry) {
// Solicitar nuevo 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. Validación de respuesta
Valide que la respuesta de Azure tenga la estructura esperada:
// Validar que la lista de blobs devuelve la estructura esperada
pm.test('La respuesta tiene contenedores', () => {
const xml = pm.response.text()
pm.expect(xml).to.include('<Containers>')
pm.expect(xml).to.include('<Container>')
})
pm.test('La respuesta es XML válido', () => {
pm.response.to.be.ok
pm.response.to.have.header('Content-Type', 'application/xml')
})
Errores comunes y cómo solucionarlos
401 No autorizado
Causa: Token inválido o caducado.
Solución:
- Verifique que el token no haya expirado (
expires_insuele ser 3600) - Verifique que el scope coincida con la API llamada
- Asegúrese de que la app tenga permisos correctos
403 Prohibido
Causa: Token válido pero sin permisos suficientes.
Solución:
- Vaya al recurso en Azure Portal
- Verifique el control de acceso (IAM)
- Asigne el rol correcto al principal de servicio de su app
404 No encontrado
Causa: Endpoint incorrecto o recurso inexistente.
Solución:
- Revise el nombre de recurso en la URL
- Verifique la versión de la API en la querystring
- Confirme que el recurso existe en el grupo adecuado
429 Demasiadas solicitudes
Causa: Se alcanzó el límite de tasa de Azure.
Solución:
- Implemente retroceso exponencial
- Verifique el header
x-ms-ratelimit-remaining - Considere agrupar llamadas
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 y comparaciones
| Característica | API de Azure | API de AWS | API de GCP |
|---|---|---|---|
| Autenticación | Azure AD (OAuth 2.0) | IAM (Sig v4) | OAuth 2.0 |
| Calidad del SDK | Excelente | Excelente | Excelente |
| Documentación | Completa pero dispersa | Específica del servicio | Específica del servicio |
| Límite de tasa | Por suscripción | Por servicio | Por proyecto |
| Nivel gratuito | 12 meses + siempre gratis | 12 meses | Siempre gratis + créditos |
La autenticación de Azure es más compleja que la de AWS (firmas), pero se integra mejor con sistemas de identidad corporativos.
Casos de uso del mundo real
Plataforma e-commerce: Alternativa a Shopify que utiliza Azure Blob Storage para imágenes, Azure Functions para webhooks y Azure OpenAI para descripciones de producto. Todas las llamadas a la API se prueban en Apidog antes del despliegue.
SaaS de salud: Sistema de registros médicos con Cosmos DB para datos, Functions para procesamiento HL7 y Key Vault para secretos. Las pruebas de API garantizan cumplimiento HIPAA validando cada respuesta.
Startup de IA: Usa Azure OpenAI para LLM, Storage para datos de entrenamiento y Container Apps para despliegue. Simulan las API de Azure en Apidog para desarrollo local.
Conclusión
Resumen práctico:
- Azure utiliza tokens OAuth 2.0 de Azure AD (Entra ID)
- Las API de Storage requieren el header
x-ms-versiony tokens Bearer válidos - Las API de Compute usan el endpoint de Azure Resource Manager
- Los servicios de IA usan claves de API o tokens AAD según el caso
- Pruebe y documente sus integraciones de Azure con Apidog
Próximos pasos:
- Registre una app en Azure AD y obtenga credenciales
- Solicite un token de acceso con el flujo de credenciales de cliente
- Realice su primera llamada a la API de Azure Storage
- Guarde la solicitud en Apidog como reutilizable
- Cree una colección para las API de su proyecto
Pruebe las API de Azure con Apidog, gratis.
Preguntas frecuentes
¿Cuál es la diferencia entre Azure AD y Microsoft Entra ID?
Son lo mismo. Microsoft renombró Azure Active Directory a Microsoft Entra ID en 2023. Use Entra ID en nueva documentación, pero Azure AD sigue apareciendo en ejemplos.
¿Cómo obtengo una clave de API para Azure OpenAI?
En Azure Portal → Azure OpenAI → su recurso → Claves y Endpoint. Verá dos claves; ambas funcionan. Regenerelas periódicamente. Azure OpenAI requiere suscripción y despliegue de recurso.
¿Cuál es la diferencia entre management.azure.com y endpoints de servicio?
management.azure.com es para operaciones CRUD de recursos (crear VM, eliminar cuenta). Los endpoints específicos ({account}.blob.core.windows.net, {resource}.openai.azure.com) son para usar recursos (subir archivos, generar texto). Necesita tokens diferentes para cada uno.
¿Cuánto duran los tokens de acceso de Azure?
Normalmente 1 hora (3600 segundos). Solicite un nuevo token antes de que caduque. Use el campo expires_in para programar renovaciones. No solicite un token en cada llamada.
¿Puedo usar identidades administradas en vez de secretos de cliente?
Sí, y es recomendable para cargas de producción en Azure. Las identidades administradas eliminan la gestión de secretos. Funciona con VMs, Functions, Container Apps y AKS. Para desarrollo local use Azure CLI (az login) o variables de entorno.
¿Por qué mi llamada funciona en Postman pero falla en código?
Revise los encabezados. Azure distingue mayúsculas/minúsculas. Postman puede agregar headers automáticamente. Compare la solicitud bruta con su código usando Fiddler o la inspección de Apidog.
¿Cómo pruebo las API de Azure localmente sin suscripción?
No es posible probar todo sin suscripción, pero puede usar emuladores:
- Azurite para Storage
- Azure Functions Core Tools para Functions
- Use Apidog para simular respuestas
¿Cómo gestiono errores de API de Azure?
Azure devuelve errores detallados en JSON. Analice los campos error.code y error.message. Códigos comunes:
-
AuthenticationFailed: revise su token -
ResourceNotFound: revise el nombre del recurso -
OperationNotAllowed: revise los límites de su suscripción

Top comments (0)