TL;DR
Las API de Azure le permiten acceder programáticamente a los servicios en la nube de Microsoft: almacenamiento, computación, bases de datos, IA y más. Se autentica utilizando Azure Active Directory (Entra ID), obtiene un token de acceso y llama a los endpoints REST. Para pruebas y documentación, use Apidog para guardar sus llamadas a la API, validar respuestas contra esquemas y compartir colecciones con su equipo.
Introducción
Microsoft Azure tiene más de 200 servicios. Cada uno tiene una API. La mayoría de los desarrolladores tocarán al menos algunos de ellos, quizás Azure Blob Storage para archivos, Azure Functions para serverless o Azure OpenAI para LLMs.
¿El problema? La documentación de Azure es masiva y dispersa. Puede pasar horas buscando el endpoint correcto, averiguando la autenticación y depurando por qué su solicitud devuelve 401 Unauthorized.
Esta guía se centra en las API que realmente utilizará. No los 200 servicios. Los 5-10 que impulsan la mayoría de las aplicaciones. Aprenderá patrones de autenticación, errores comunes y cómo probar sus integraciones de Azure antes de implementarlas.
Pruebe sus API de Azure con Apidog, gratis
Al final de esta guía, podrá:
- Configurar la autenticación de Azure correctamente (la fuente número 1 de errores)
- Llamar a las API de Azure Storage, Compute e 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 necesita autenticación. Si esto está mal, todo lo demás falla. Aquí es donde la mayoría de los desarrolladores se quedan atascados.

Azure Active Directory / Microsoft Entra ID
Azure utiliza OAuth 2.0 para la autenticación de la API. No envía un nombre de usuario y contraseña. Envía un token de acceso que demuestra quién es y qué puede hacer.
El flujo es el siguiente:
- Registre una aplicación en Azure AD (Entra ID)
- Obtenga un ID de cliente y un secreto de cliente
- Solicite un token de acceso del endpoint de token de Azure
- Incluya ese token en sus llamadas a la API
Paso 1: Registrar una aplicación
Vaya a Azure Portal → Microsoft Entra ID → Registros de aplicaciones → Nuevo registro.
Asígnele un nombre, seleccione "Cuentas en este directorio organizacional solamente" para aplicaciones internas y regístrese. Obtendrá:
- ID de aplicación (cliente):
12345678-1234-1234-1234-123456789abc - ID de directorio (inquilino):
87654321-4321-4321-4321-cba987654321
Paso 2: Crear un secreto de cliente
En el registro de su aplicación, vaya a Certificados y secretos → Nuevo secreto de cliente. Copie el valor del secreto inmediatamente. No lo volverá a ver.
- Secreto de cliente:
abc123~DEF456-ghi789
Paso 3: Asignar permisos
Vaya a Permisos de API → Agregar un permiso. Para Azure Storage, seleccione "Azure Storage" → "user_impersonation". Para las API de administración de Azure, seleccione "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 lugar de HTTP puro
Para el código de producción, utilice el SDK de Azure. Maneja la actualización de tokens, los reintentos y la serialización.
import { DefaultAzureCredential } from '@azure/identity'
import { BlobServiceClient } from '@azure/storage-blob'
// Utiliza automáticamente su 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, necesita comprender las llamadas HTTP puras. Ahí es donde entra Apidog.
API de Azure Storage
Azure Storage es el servicio de Azure más utilizado. Incluye:
- Blob Storage: Archivos, imágenes, copias de seguridad
- Queue Storage: Colas de mensajes
- Table Storage: Almacén de clave-valor NoSQL
- File Storage: Comparticiones de archivos 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, formato de autorización correcto). Apidog le ayuda a:
- Guardar estos como solicitudes reutilizables
- Usar variables de entorno para nombres de cuenta y tokens
- Validar que las respuestas coincidan con los esquemas esperados
Diseñe y pruebe las API de Azure Storage con Apidog
API de Azure Compute
Azure Compute le permite administrar máquinas virtuales, contenedores y funciones sin servidor.
API de Azure Functions
Azure Functions tiene una API REST para operaciones de administración.
Listar funciones en una aplicación 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 aloja modelos de OpenAI y proporciona servicios cognitivos para visión, voz y 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 una autenticación compleja y requieren encabezados precisos. Probarlas manualmente con curl se vuelve propenso a errores rápidamente. Apidog resuelve esto mediante:
1. Gestión de entornos
Las API de Azure abarcan múltiples endpoints:
management.azure.compara el plano de control{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 la actualización de tokens
Los tokens de Azure caducan después de 1 hora. Agregue 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 las respuestas de Azure coincidan con los esquemas esperados:
// Probar 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')
})
Comience a probar las API de Azure con Apidog, gratis
Errores comunes y cómo solucionarlos
401 No autorizado
Causa: Token no válido o caducado.
Solución:
- Verifique que el token no haya caducado (expires_in suele ser 3600 segundos)
- Verifique que el scope coincida con la API a la que está llamando
- Asegúrese de que el registro de la aplicación tenga los permisos correctos
403 Prohibido
Causa: El token es válido pero carece de permisos.
Solución:
- Vaya al recurso en Azure Portal
- Verifique el control de acceso (IAM)
- Agregue una asignación de rol para el principal de servicio de su aplicación
404 No encontrado
Causa: Endpoint incorrecto o el recurso no existe.
Solución:
- Verifique el nombre del recurso en la URL
- Verifique la versión de la API en la cadena de consulta
- Asegúrese de que el recurso exista en el grupo de recursos correcto
429 Demasiadas solicitudes
Causa: Ha alcanzado los límites de tasa de Azure.
Solución:
- Implemente un retroceso exponencial
- Verifique el encabezado
x-ms-ratelimit-remaining - Considere agrupar las solicitudes
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 el enfoque basado en firmas de AWS, pero se integra mejor con los sistemas de identidad empresariales.
Casos de uso del mundo real
Plataforma de comercio electrónico. Una alternativa a Shopify utiliza Azure Blob Storage para imágenes de productos, Azure Functions para webhooks de procesamiento de pedidos y Azure OpenAI para descripciones de productos. Prueban todas las llamadas a la API en Apidog antes de implementar los cambios.
SaaS de atención médica. Un sistema de registros médicos utiliza Azure Cosmos DB para datos de pacientes, Azure Functions para el procesamiento de mensajes HL7 y Azure Key Vault para secretos. Las pruebas de API garantizan el cumplimiento de HIPAA al validar cada esquema de respuesta.
Startup de IA. Una empresa que crea agentes de IA utiliza Azure OpenAI para llamadas LLM, Azure Storage para datos de entrenamiento y Azure Container Apps para la implementación. Utilizan Apidog para simular las API de Azure durante el desarrollo local.
Conclusión
Esto es lo que ha aprendido:
- La autenticación de Azure utiliza tokens OAuth 2.0 de Azure AD (Entra ID)
- Las API de Storage requieren el encabezado
x-ms-versiony tokens Bearer adecuados - Las API de Compute utilizan el endpoint de Azure Resource Manager
- Los servicios de IA utilizan claves de API o tokens de AAD según el servicio
- Pruebe y documente sus integraciones de Azure con Apidog
Sus próximos pasos:
- Registre una aplicación en Azure AD y obtenga sus credenciales
- Solicite un token de acceso utilizando el flujo de credenciales de cliente
- Realice su primera llamada a la API de Azure Storage
- Guarde esa llamada en Apidog como una solicitud reutilizable
- Cree una colección para las API de Azure 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 cambió el nombre de Azure Active Directory a Microsoft Entra ID en 2023. Verá ambos nombres en la documentación. Use Entra ID al crear nueva documentación, pero sepa que Azure AD sigue siendo común en artículos y código más antiguos.
¿Cómo obtengo una clave de API para Azure OpenAI?Vaya a Azure Portal → Azure OpenAI → su recurso → Claves y Endpoint. Verá dos claves. Cualquiera funciona. Regenerelas periódicamente por seguridad. A diferencia de la API pública de OpenAI, Azure OpenAI requiere una suscripción a Azure y una implementación de recursos primero.
¿Cuál es la diferencia entre management.azure.com y los endpoints específicos del servicio?management.azure.com es el endpoint de Azure Resource Manager. Sirve para operaciones CRUD en los propios recursos de Azure (crear una VM, eliminar una cuenta de almacenamiento). Los endpoints específicos del servicio ({account}.blob.core.windows.net, {resource}.openai.azure.com) son para usar esos recursos (subir un archivo, generar texto). Necesita diferentes tokens para cada uno.
¿Cuánto duran los tokens de acceso de Azure?Típicamente 1 hora (3600 segundos). Puede solicitar un nuevo token antes de que caduque el anterior. Use el campo expires_in de la respuesta del token para saber cuándo actualizar. No solicite un nuevo token en cada llamada a la API, eso es ineficiente.
¿Puedo usar identidades administradas en lugar de secretos de cliente?Sí, y debería hacerlo para cargas de trabajo de producción que se ejecutan en Azure. Las identidades administradas eliminan la necesidad de almacenar secretos de cliente. Funcionan con Azure VMs, Functions, Container Apps y AKS. Para el desarrollo local, use Azure CLI (az login) o variables de entorno con secretos de cliente.
¿Por qué mi llamada a la API funciona en Postman pero falla en el código?Verifique los encabezados. Las API de Azure distinguen entre mayúsculas y minúsculas para los nombres de los encabezados. Postman podría estar agregando encabezados que usted no notó. Compare la solicitud bruta de Postman con su código utilizando una herramienta como Fiddler o la inspección de solicitudes de Apidog.
¿Cómo pruebo las API de Azure localmente sin una suscripción a Azure?No puede probar completamente sin una suscripción, pero puede usar los emuladores locales de Azure:
- Azurite para Azure Storage
- Azure Functions Core Tools para Functions
- Use Apidog para simular respuestas de la API de Azure
¿Cuál es la mejor manera de manejar los errores de la API de Azure?Azure devuelve JSON de error detallado. Analice los campos error.code y error.message. Códigos comunes:
AuthenticationFailed- verifique su tokenResourceNotFound- verifique el nombre del recursoOperationNotAllowed- verifique los límites de su suscripción
