Intinya
API Azure memungkinkan Anda mengakses layanan cloud Microsoft secara terprogram—penyimpanan, komputasi, basis data, AI, dan lainnya. Anda harus melakukan autentikasi dengan Azure Active Directory (Entra ID), memperoleh token akses, lalu memanggil endpoint REST. Untuk pengujian dan dokumentasi, gunakan Apidog untuk menyimpan permintaan API, memvalidasi respons sesuai skema, dan berbagi koleksi dengan tim.
Pengantar
Microsoft Azure menawarkan lebih dari 200 layanan, masing-masing dengan API-nya sendiri. Kebanyakan developer akan memakai beberapa di antaranya—seperti Azure Blob Storage untuk file, Azure Functions untuk serverless, atau Azure OpenAI untuk LLM.
Tantangannya adalah dokumentasi Azure sangat luas dan tersebar. Anda bisa menghabiskan waktu lama mencari endpoint yang tepat, memahami autentikasi, dan men-debug error seperti 401 Unauthorized.
Panduan ini fokus pada API yang paling sering digunakan, bukan semua layanan. Anda akan belajar pola autentikasi, error umum, dan cara menguji integrasi Azure Anda sebelum deploy.
💡 Jika Anda membangun dengan API Azure, Apidog membantu merancang, menguji, dan mendokumentasikan integrasi Anda. Simpan permintaan API Azure sebagai koleksi, tambahkan variabel lingkungan untuk berbagai langganan, dan validasi respons terhadap skema. Ini mencegah error konfigurasi sebelum ke produksi.
Uji API Azure Anda dengan Apidog—gratis.
Di akhir panduan ini, Anda akan bisa:
- Mengatur autentikasi Azure dengan benar (sumber error #1)
- Memanggil API Azure Storage, Compute, dan AI dengan contoh nyata
- Men-debug error API Azure yang umum
- Menguji dan mendokumentasikan integrasi Azure dengan Apidog
Masalah Autentikasi (dan Cara Menyelesaikannya)
Setiap permintaan API Azure membutuhkan autentikasi. Jika salah, semua request gagal. Di sinilah developer sering tersandung.
Azure Active Directory / Microsoft Entra ID
Azure menggunakan OAuth 2.0 untuk autentikasi API. Anda tidak mengirim username/password, tapi token akses.
Alurnya:
- Daftarkan aplikasi di Azure AD (Entra ID)
- Dapatkan client ID dan client secret
- Minta token akses dari endpoint token Azure
- Sertakan token dalam request API Anda
Langkah 1: Daftar aplikasi
Buka Azure Portal → Microsoft Entra ID → Pendaftaran aplikasi → Pendaftaran baru. Berikan nama, pilih "Akun di direktori organisasi ini saja" untuk aplikasi internal, dan daftarkan. Catat:
- Client ID:
12345678-1234-1234-1234-123456789abc - Tenant ID:
87654321-4321-4321-4321-cba987654321
Langkah 2: Buat client secret
Di pendaftaran aplikasi, buka Sertifikat & rahasia → Rahasia klien baru. Salin nilainya segera:
- Client secret:
abc123~DEF456-ghi789
Langkah 3: Tetapkan izin
Masuk ke Izin API → Tambahkan izin. Untuk Storage, pilih "Azure Storage" → "user_impersonation". Untuk Management API, pilih "Azure Service Management" → "user_impersonation".
Langkah 4: Dapatkan token akses
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"
Respons:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...",
"expires_in": 3599,
"token_type": "Bearer"
}
Langkah 5: Gunakan 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"
Gunakan Azure SDK, Bukan HTTP Mentah
Untuk produksi, gunakan SDK Azure. SDK menangani refresh token, retry, dan serialisasi.
import { DefaultAzureCredential } from '@azure/identity'
import { BlobServiceClient } from '@azure/storage-blob'
const credential = new DefaultAzureCredential()
const blobServiceClient = new BlobServiceClient(
'https://youraccount.blob.core.windows.net',
credential
)
for await (const container of blobServiceClient.listContainers()) {
console.log(container.name)
}
Namun, untuk pengujian dan debugging, pahami HTTP mentah. Di sini Apidog sangat berguna.
API Azure Storage
Azure Storage adalah layanan Azure yang paling sering dipakai:
- Blob Storage: file, gambar, backup
- Queue Storage: antrean pesan
- Table Storage: penyimpanan NoSQL
- File Storage: berbagi file SMB
API Blob Storage
Daftar kontainer:
GET https://{account}.blob.core.windows.net/?comp=list
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Buat kontainer:
PUT https://{account}.blob.core.windows.net/{container}?restype=container
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Unggah 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!
Unduh blob:
GET https://{account}.blob.core.windows.net/{container}/{blob}
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Menguji dengan Apidog
API Azure Storage butuh header khusus (x-ms-version, Authorization). Dengan Apidog, Anda bisa:
- Simpan request sebagai reusable request
- Gunakan variabel lingkungan untuk account/token
- Validasi respons terhadap skema yang diharapkan
Rancang dan uji API Azure Storage Anda dengan Apidog.
API Azure Compute
Azure Compute memungkinkan Anda mengelola VM, container, dan serverless functions.
API Azure Functions
Azure Functions menyediakan REST API untuk operasi manajemen.
Daftar fungsi dalam aplikasi fungsi:
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}
Memicu fungsi (HTTP trigger):
POST https://{app-name}.azurewebsites.net/api/{function-name}
Content-Type: application/json
{
"name": "Azure",
"message": "Hello from API"
}
Dapatkan kunci fungsi:
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 Mesin Virtual
Daftar VM:
GET https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/virtualMachines?api-version=2023-07-01
Authorization: Bearer {management-token}
Mulai 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}
Hentikan 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 Layanan Azure AI
Azure menyediakan model OpenAI dan layanan Cognitive untuk vision, speech, dan language.
API Azure OpenAI
Chat completion:
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
}
Daftar deployment:
GET https://{resource-name}.openai.azure.com/openai/deployments?api-version=2024-02-15-preview
api-key: {your-api-key}
API Cognitive Services
Analisis Sentimen:
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!"
}
]
}
Analisis Gambar:
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]
Menguji API Azure dengan Apidog
API Azure menuntut autentikasi kompleks dan header yang tepat. Menguji manual dengan curl rawan error. Apidog menyederhanakan dengan:
1. Manajemen Lingkungan
API Azure punya banyak endpoint:
-
management.azure.comuntuk control plane -
{account}.blob.core.windows.netuntuk storage -
{resource}.openai.azure.comuntuk AI
Buat environment di Apidog untuk tiap use-case:
# Pengembangan
MANAGEMENT_TOKEN: eyJ0eXAiOiJKV1Qi...
STORAGE_ACCOUNT: devstorage
OPENAI_RESOURCE: dev-openai
# Produksi
MANAGEMENT_TOKEN: eyJ0eXAiOiJKV1Qi...
STORAGE_ACCOUNT: prodstorage
OPENAI_RESOURCE: prod-openai
2. Skrip Pra-permintaan untuk Refresh Token
Token Azure expired tiap 1 jam. Tambahkan pre-request script:
// Cek expired token
const tokenExpiry = pm.environment.get('token_expiry')
const now = Date.now() / 1000
if (!tokenExpiry || now >= tokenExpiry) {
// Request token baru
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. Validasi Respons
Validasi respons Azure agar sesuai skema:
// Tes bahwa response blob berisi struktur yang diharapkan
pm.test('Response has containers', () => {
const xml = pm.response.text()
pm.expect(xml).to.include('<Containers>')
pm.expect(xml).to.include('<Container>')
})
pm.test('Respons adalah XML yang valid', () => {
pm.response.to.be.ok
pm.response.to.have.header('Content-Type', 'application/xml')
})
Mulai uji API Azure Anda dengan Apidog secara gratis.
Kesalahan Umum dan Cara Memperbaikinya
401 Unauthorized
Penyebab: Token invalid/expired.
Perbaikan:
- Cek token belum expired (
expires_inumumnya 3600 detik) - Scope cocok dengan API yang dipanggil
- Aplikasi punya izin yang benar
403 Forbidden
Penyebab: Token valid tapi tidak punya izin.
Perbaikan:
- Cek akses (IAM) pada resource di Azure Portal
- Tambah role assignment ke aplikasi/service principal
404 Not Found
Penyebab: Endpoint salah atau resource tidak ada.
Perbaikan:
- Cek nama resource di URL
- Pastikan versi API benar
- Resource ada di resource group yang tepat
429 Too Many Requests
Penyebab: Limit rate Azure tercapai.
Perbaikan:
- Terapkan exponential backoff
- Cek header
x-ms-ratelimit-remaining - Pertimbangkan batch request
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
}
}
}
}
Alternatif dan Perbandingan
| Fitur | API Azure | API AWS | API GCP |
|---|---|---|---|
| Autentikasi | Azure AD (OAuth 2.0) | IAM (Sig v4) | OAuth 2.0 |
| Kualitas SDK | Sangat Baik | Sangat Baik | Sangat Baik |
| Dokumentasi | Komprehensif namun tersebar | Spesifik layanan | Spesifik layanan |
| Pembatasan laju | Per-langganan | Per-layanan | Per-proyek |
| Tingkat gratis | 12 bulan + selalu gratis | 12 bulan | Selalu gratis + kredit |
Autentikasi Azure lebih kompleks daripada AWS (Sig v4), tapi lebih terintegrasi dengan sistem identitas perusahaan.
Studi Kasus Dunia Nyata
Platform E-commerce: Alternatif Shopify memakai Azure Blob Storage untuk gambar produk, Azure Functions untuk webhook order, dan Azure OpenAI untuk deskripsi produk. Semua API dites via Apidog sebelum deploy.
SaaS Kesehatan: Sistem rekam medis menggunakan Azure Cosmos DB untuk data pasien, Functions untuk HL7, dan Key Vault untuk secrets. Pengujian API menjaga compliance HIPAA dengan validasi skema respons.
Startup AI: Perusahaan AI memakai Azure OpenAI untuk LLM, Azure Storage untuk data training, dan Azure Container Apps untuk deploy. Apidog digunakan untuk mock API Azure saat dev lokal.
Kesimpulan
Yang telah Anda pelajari:
- Autentikasi Azure pakai token OAuth 2.0 dari Azure AD (Entra ID)
- API Storage butuh header
x-ms-versiondan token Bearer valid - API Compute via endpoint Azure Resource Manager
- Layanan AI pakai API key/token AAD tergantung layanan
- Uji dan dokumentasikan integrasi Azure Anda dengan Apidog
Langkah selanjutnya:
- Daftarkan aplikasi di Azure AD dan dapatkan kredensial
- Minta token akses via client credentials
- Lakukan panggilan API Azure Storage pertama Anda
- Simpan request tersebut di Apidog sebagai reusable request
- Buat koleksi API Azure untuk proyek Anda
Uji API Azure Anda dengan Apidog—gratis.
FAQ
Apa perbedaan Azure AD dan Microsoft Entra ID?
Keduanya sama. Microsoft mengganti nama Azure Active Directory menjadi Microsoft Entra ID tahun 2023. Anda akan menemukan keduanya di dokumentasi.
Bagaimana mendapatkan API key untuk Azure OpenAI?
Azure Portal → Azure OpenAI → resource Anda → Kunci dan Endpoint. Ada dua key, keduanya valid. Regenerasi berkala untuk keamanan.
Perbedaan management.azure.com dan endpoint layanan spesifik?
management.azure.com untuk CRUD resource Azure (buat VM, hapus storage). Endpoint spesifik layanan ({account}.blob.core.windows.net, {resource}.openai.azure.com) untuk penggunaan resource (upload file, generate teks). Token-nya berbeda.
Berapa lama token akses Azure bertahan?
Umumnya 1 jam (3600 detik). Refresh sebelum expiry, cek field expires_in. Jangan request token tiap API call.
Bisakah pakai Managed Identity daripada client secret?
Ya, dan sebaiknya untuk workload di Azure. Managed Identity menghilangkan kebutuhan menyimpan secret. Untuk dev lokal, pakai Azure CLI (az login) atau env var dengan secret.
Kenapa API call berhasil di Postman tapi gagal di kode?
Periksa header. API Azure case-sensitive untuk header. Postman bisa menambahkan header otomatis. Bandingkan permintaan raw Postman dengan kode Anda.
Bagaimana menguji API Azure tanpa langganan Azure?
Tidak bisa full, tapi bisa pakai emulator:
- Azurite untuk Storage
- Azure Functions Core Tools untuk Functions
- Apidog untuk mock respons API Azure
Tips menangani error API Azure?
Azure mengembalikan error JSON detail. Periksa field error.code dan error.message. Kode umum:
-
AuthenticationFailed– cek token -
ResourceNotFound– cek nama resource -
OperationNotAllowed– cek limit langganan

Top comments (0)