Forem

Cover image for Cara Menggunakan Azure API: Panduan Lengkap
Walse
Walse

Posted on • Originally published at apidog.com

Cara Menggunakan Azure API: Panduan Lengkap

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.

Coba Apidog hari ini

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 AD

Azure Active Directory / Microsoft Entra ID

Azure menggunakan OAuth 2.0 untuk autentikasi API. Anda tidak mengirim username/password, tapi token akses.

Alurnya:

  1. Daftarkan aplikasi di Azure AD (Entra ID)
  2. Dapatkan client ID dan client secret
  3. Minta token akses dari endpoint token Azure
  4. 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"
Enter fullscreen mode Exit fullscreen mode

Respons:

{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...",
  "expires_in": 3599,
  "token_type": "Bearer"
}
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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)
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Buat kontainer:

PUT https://{account}.blob.core.windows.net/{container}?restype=container
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Enter fullscreen mode Exit fullscreen mode

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!
Enter fullscreen mode Exit fullscreen mode

Unduh blob:

GET https://{account}.blob.core.windows.net/{container}/{blob}
Authorization: Bearer {token}
x-ms-version: 2023-01-03
Enter fullscreen mode Exit fullscreen mode

Menguji dengan Apidog

API Azure Storage butuh header khusus (x-ms-version, Authorization). Dengan Apidog, Anda bisa:

  1. Simpan request sebagai reusable request
  2. Gunakan variabel lingkungan untuk account/token
  3. 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}
Enter fullscreen mode Exit fullscreen mode

Memicu fungsi (HTTP trigger):

POST https://{app-name}.azurewebsites.net/api/{function-name}
Content-Type: application/json

{
  "name": "Azure",
  "message": "Hello from API"
}
Enter fullscreen mode Exit fullscreen mode

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}
Enter fullscreen mode Exit fullscreen mode

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}
Enter fullscreen mode Exit fullscreen mode

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}
Enter fullscreen mode Exit fullscreen mode

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}
Enter fullscreen mode Exit fullscreen mode

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
}
Enter fullscreen mode Exit fullscreen mode

Daftar deployment:

GET https://{resource-name}.openai.azure.com/openai/deployments?api-version=2024-02-15-preview
api-key: {your-api-key}
Enter fullscreen mode Exit fullscreen mode

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!"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

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]
Enter fullscreen mode Exit fullscreen mode

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.com untuk control plane
  • {account}.blob.core.windows.net untuk storage
  • {resource}.openai.azure.com untuk 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
Enter fullscreen mode Exit fullscreen mode

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)
}
Enter fullscreen mode Exit fullscreen mode

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')
})
Enter fullscreen mode Exit fullscreen mode

Mulai uji API Azure Anda dengan Apidog secara gratis.

Kesalahan Umum dan Cara Memperbaikinya

401 Unauthorized

Penyebab: Token invalid/expired.

Perbaikan:

  1. Cek token belum expired (expires_in umumnya 3600 detik)
  2. Scope cocok dengan API yang dipanggil
  3. Aplikasi punya izin yang benar

403 Forbidden

Penyebab: Token valid tapi tidak punya izin.

Perbaikan:

  1. Cek akses (IAM) pada resource di Azure Portal
  2. Tambah role assignment ke aplikasi/service principal

404 Not Found

Penyebab: Endpoint salah atau resource tidak ada.

Perbaikan:

  1. Cek nama resource di URL
  2. Pastikan versi API benar
  3. Resource ada di resource group yang tepat

429 Too Many Requests

Penyebab: Limit rate Azure tercapai.

Perbaikan:

  1. Terapkan exponential backoff
  2. Cek header x-ms-ratelimit-remaining
  3. 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
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

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-version dan 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:

  1. Daftarkan aplikasi di Azure AD dan dapatkan kredensial
  2. Minta token akses via client credentials
  3. Lakukan panggilan API Azure Storage pertama Anda
  4. Simpan request tersebut di Apidog sebagai reusable request
  5. 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)