ÖZET
Azure API'leri, Microsoft'un bulut hizmetlerine (depolama, bilgi işlem, veritabanları, yapay zeka ve daha fazlası) programatik olarak erişmenizi sağlar. Azure Active Directory (Entra ID) kullanarak kimlik doğrulaması yapar, bir erişim belirteci alır ve REST uç noktalarını çağırırsınız. Test ve dokümantasyon için, API çağrılarınızı kaydetmek, yanıtları şemalara göre doğrulamak ve koleksiyonları ekibinizle paylaşmak için Apidog'u kullanın.
Giriş
Microsoft Azure'ın 200'den fazla hizmeti var. Her birinin bir API'si bulunuyor. Çoğu geliştirici en az birkaçına dokunacaktır - belki dosyalar için Azure Blob Depolama, sunucusuz uygulamalar için Azure İşlevleri veya LLM'ler için Azure OpenAI.
Sorun ne? Azure'ın dokümantasyonu çok büyük ve dağınık. Doğru uç noktayı bulmak, kimlik doğrulamayı çözmek ve isteğinizin neden 401 Yetkisiz döndürdüğünü ayıklamak için saatler harcayabilirsiniz.
Bu rehber, aslında kullanacağınız API'lere odaklanmaktadır. 200 hizmete değil. Çoğu uygulamaya güç veren 5-10 tanesine. Kimlik doğrulama desenlerini, yaygın tuzakları ve Azure entegrasyonlarınızı dağıtmadan önce nasıl test edeceğinizi öğreneceksiniz.
Azure API'lerinizi Apidog ile test edin - ücretsiz
Bu rehberin sonunda şunları yapabileceksiniz:
- Azure kimlik doğrulamasını doğru şekilde kurun (hataların 1 numaralı kaynağı)
- Çalışan örneklerle Azure Depolama, Bilgi İşlem ve Yapay Zeka API'lerini çağırın
- Yaygın Azure API hatalarını ayıklayın
- Apidog ile Azure entegrasyonlarınızı test edin ve belgeleyin
Kimlik doğrulama sorunu (ve nasıl çözülür)
Her Azure API çağrısı kimlik doğrulama gerektirir. Bunu yanlış yaparsanız diğer her şey başarısız olur. Çoğu geliştiricinin takıldığı nokta burasıdır.

Azure Active Directory / Microsoft Entra ID
Azure, API kimlik doğrulaması için OAuth 2.0 kullanır. Bir kullanıcı adı ve parola göndermezsiniz. Kim olduğunuzu ve neler yapabileceğinizi kanıtlayan bir erişim belirteci gönderirsiniz.
Akış şöyle görünür:
- Azure AD'de (Entra ID) bir uygulama kaydedin
- Bir istemci kimliği ve istemci sırrı alın
- Azure'ın belirteç uç noktasından bir erişim belirteci isteyin
- Bu belirteci API çağrılarınıza ekleyin
Adım 1: Bir uygulama kaydedin
Azure Portal → Microsoft Entra ID → Uygulama kayıtları → Yeni kayıt'a gidin.
Bir ad verin, dahili uygulamalar için "Yalnızca bu kuruluş dizinindeki hesaplar"ı seçin ve kaydedin. Şunları alacaksınız:
- Uygulama (istemci) Kimliği:
12345678-1234-1234-1234-123456789abc - Dizin (kiracı) Kimliği:
87654321-4321-4321-4321-cba987654321
Adım 2: Bir istemci sırrı oluşturun
Uygulama kaydınızda, Sertifikalar ve sırlar → Yeni istemci sırrı'na gidin. Sır değerini hemen kopyalayın. Bir daha görmeyeceksiniz.
- İstemci sırrı:
abc123~DEF456-ghi789
Adım 3: İzinleri atayın
API izinleri → Bir izin ekle'ye gidin. Azure Depolama için, "Azure Depolama" → "user_impersonation" seçeneğini belirleyin. Azure Yönetim API'leri için, "Azure Hizmet Yönetimi" → "user_impersonation" seçeneğini belirleyin.
Adım 4: Bir erişim belirteci alın
curl -X POST "https://login.microsoftonline.com/{kiracı-kimliği}/oauth2/v2.0/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id={istemci-kimliği}" \
-d "client_secret={istemci-sırrı}" \
-d "scope=https://storage.azure.com/.default" \
-d "grant_type=client_credentials"
Yanıt:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...",
"expires_in": 3599,
"token_type": "Bearer"
}
Adım 5: Belirteci kullanın
curl -X GET "https://hesabınız.blob.core.windows.net/kapsayıcı?restype=container&comp=list" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs..." \
-H "x-ms-version: 2023-01-03"
Ham HTTP yerine Azure SDK kullanma
Üretim kodu için Azure SDK'yı kullanın. Belirteç yenilemeyi, yeniden denemeleri ve serileştirmeyi yönetir.
import { DefaultAzureCredential } from '@azure/identity'
import { BlobServiceClient } from '@azure/storage-blob'
// Azure CLI oturum açmanızı veya ortam değişkenlerinizi otomatik olarak kullanır
const credential = new DefaultAzureCredential()
const blobServiceClient = new BlobServiceClient(
'https://hesabınız.blob.core.windows.net',
credential
)
// Kapsayıcıları listele
for await (const container of blobServiceClient.listContainers()) {
console.log(container.name)
}
Ancak test, hata ayıklama ve dokümantasyon için ham HTTP çağrılarını anlamanız gerekir. İşte burada Apidog devreye giriyor.
Azure Depolama API'leri
Azure Depolama, en sık kullanılan Azure hizmetidir. İçerir:
- Blob Depolama: Dosyalar, resimler, yedeklemeler
- Kuyruk Depolama: Mesaj kuyrukları
- Tablo Depolama: NoSQL anahtar-değer deposu
- Dosya Depolama: SMB dosya paylaşımları
Blob Depolama API'si
Kapsayıcıları listele:
GET https://{hesap}.blob.core.windows.net/?comp=list
Authorization: Bearer {belirteç}
x-ms-version: 2023-01-03
Bir kapsayıcı oluştur:
PUT https://{hesap}.blob.core.windows.net/{kapsayıcı}?restype=container
Authorization: Bearer {belirteç}
x-ms-version: 2023-01-03
Bir blobu yükle:
PUT https://{hesap}.blob.core.windows.net/{kapsayıcı}/{blob}
Authorization: Bearer {belirteç}
x-ms-version: 2023-01-03
Content-Type: text/plain
Merhaba, Azure Blob Depolama!
Bir blobu indir:
GET https://{hesap}.blob.core.windows.net/{kapsayıcı}/{blob}
Authorization: Bearer {belirteç}
x-ms-version: 2023-01-03
Apidog ile test etme
Azure Depolama API'leri belirli başlıklar (x-ms-version, doğru yetkilendirme biçimi) gerektirir. Apidog size şu konularda yardımcı olur:
- Bunları yeniden kullanılabilir istekler olarak kaydetme
- Hesap adları ve belirteçler için ortam değişkenleri kullanma
- Yanıtların beklenen şemalarla eşleştiğini doğrulama
Apidog ile Azure Depolama API'lerini tasarlayın ve test edin
Azure İşlem API'leri
Azure İşlem, sanal makineleri, kapsayıcıları ve sunucusuz işlevleri yönetmenizi sağlar.
Azure İşlevleri API'si
Azure İşlevleri, yönetim işlemleri için bir REST API'ye sahiptir.
Bir işlev uygulamasındaki işlevleri listele:
GET https://management.azure.com/subscriptions/{abonelik-kimliği}/resourceGroups/{kaynak-grubu}/providers/Microsoft.Web/sites/{uygulama-adı}/functions?api-version=2023-01-01
Authorization: Bearer {yönetim-belirteci}
Bir işlevi tetikle (HTTP tetikleyici):
POST https://{uygulama-adı}.azurewebsites.net/api/{işlev-adı}
Content-Type: application/json
{
"name": "Azure",
"message": "API'den merhaba"
}
İşlev anahtarlarını al:
POST https://management.azure.com/subscriptions/{abonelik-kimliği}/resourceGroups/{kaynak-grubu}/providers/Microsoft.Web/sites/{uygulama-adı}/functions/{işlev-adı}/listKeys?api-version=2023-01-01
Authorization: Bearer {yönetim-belirteci}
Sanal Makineler API'si
VM'leri listele:
GET https://management.azure.com/subscriptions/{abonelik-kimliği}/providers/Microsoft.Compute/virtualMachines?api-version=2023-07-01
Authorization: Bearer {yönetim-belirteci}
Bir VM başlat:
POST https://management.azure.com/subscriptions/{abonelik-kimliği}/resourceGroups/{kaynak-grubu}/providers/Microsoft.Compute/virtualMachines/{vm-adı}/start?api-version=2023-07-01
Authorization: Bearer {yönetim-belirteci}
Bir VM durdur:
POST https://management.azure.com/subscriptions/{abonelik-kimliği}/resourceGroups/{kaynak-grubu}/providers/Microsoft.Compute/virtualMachines/{vm-adı}/powerOff?api-version=2023-07-01
Authorization: Bearer {yönetim-belirteci}
Azure Yapay Zeka Hizmetleri API'leri
Azure, OpenAI modellerini barındırır ve görme, konuşma ve dil için bilişsel hizmetler sağlar.
Azure OpenAI API'si
Tamamlamaları al:
POST https://{kaynak-adı}.openai.azure.com/openai/deployments/{dağıtım-kimliği}/chat/completions?api-version=2024-02-15-preview
api-key: {api-anahtarınız}
Content-Type: application/json
{
"messages": [
{"role": "system", "content": "Sen yardımsever bir asistansın."},
{"role": "user", "content": "Azure nedir?"}
],
"max_tokens": 500
}
Dağıtımları listele:
GET https://{kaynak-adı}.openai.azure.com/openai/deployments?api-version=2024-02-15-preview
api-key: {api-anahtarınız}
Bilişsel Hizmetler API'si
Metin Analizi - Duygu:
POST https://{kaynak-adı}.cognitiveservices.azure.com/text/analytics/v3.1/sentiment
Ocp-Apim-Subscription-Key: {abonelik-anahtarı}
Content-Type: application/json
{
"documents": [
{
"id": "1",
"language": "en",
"text": "Azure API'lerini seviyorum. Harika çalışıyorlar!"
}
]
}
Bilgisayar Görüsü - Görüntüyü Analiz Et:
POST https://{kaynak-adı}.cognitiveservices.azure.com/vision/v3.2/analyze?visualFeatures=Description,Tags
Ocp-Apim-Subscription-Key: {abonelik-anahtarı}
Content-Type: application/octet-stream
[ikili görüntü verisi]
Azure API'lerini Apidog ile test etme
Azure API'leri karmaşık kimlik doğrulama gerektirir ve kesin başlıklar ister. Bunları curl ile manuel olarak test etmek hızla hataya açık hale gelir. Apidog bunu şu yollarla çözer:
1. Ortam yönetimi
Azure API'leri birden çok uç noktayı kapsar:
- Kontrol düzlemi için
management.azure.com - Depolama için
{hesap}.blob.core.windows.net - Yapay zeka için
{kaynak}.openai.azure.com
Apidog'da her biri için ortamlar oluşturun:
# Geliştirme
MANAGEMENT_TOKEN: eyJ0eXAiOiJKV1Qi...
STORAGE_ACCOUNT: devstorage
OPENAI_RESOURCE: dev-openai
# Üretim
MANAGEMENT_TOKEN: eyJ0eXAiOiJKV1Qi...
STORAGE_ACCOUNT: prodstorage
OPENAI_RESOURCE: prod-openai
2. Belirteç yenileme için ön istek betikleri
Azure belirteçleri 1 saat sonra sona erer. Bir ön istek betiği ekleyin:
// Belirtecin süresinin dolup dolmadığını kontrol et
const tokenExpiry = pm.environment.get('token_expiry')
const now = Date.now() / 1000
if (!tokenExpiry || now >= tokenExpiry) {
// Yeni belirteç iste
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. Yanıt doğrulama
Azure yanıtlarının beklenen şemalarla eşleştiğini doğrulayın:
// Blob listesinin beklenen yapıyı döndürdüğünü test et
pm.test('Yanıt kapsayıcılara sahip', () => {
const xml = pm.response.text()
pm.expect(xml).to.include('<Containers>')
pm.expect(xml).to.include('<Container>')
})
pm.test('Yanıt geçerli XML', () => {
pm.response.to.be.ok
pm.response.to.have.header('Content-Type', 'application/xml')
})
Apidog ile Azure API'lerini test etmeye başlayın - ücretsiz
Yaygın hatalar ve nasıl düzeltilir
401 Yetkisiz
Neden: Geçersiz veya süresi dolmuş belirteç.
Düzeltme:
- Belirtecin süresinin dolmadığını kontrol edin (expires_in tipik olarak 3600 saniyedir)
- Kapsamın çağırdığınız API ile eşleştiğini doğrulayın
- Uygulama kaydının doğru izinlere sahip olduğundan emin olun
403 Yasak
Neden: Belirteç geçerli ancak izinleri eksik.
Düzeltme:
- Azure Portal'daki kaynağa gidin
- Erişim kontrolünü (IAM) kontrol edin
- Uygulamanızın hizmet sorumlusu için bir rol ataması ekleyin
404 Bulunamadı
Neden: Yanlış uç nokta veya kaynak mevcut değil.
Düzeltme:
- URL'deki kaynak adını doğrulayın
- Sorgu dizesindeki API sürümünü kontrol edin
- Kaynağın doğru kaynak grubunda bulunduğundan emin olun
429 Çok Fazla İstek
Neden: Azure'ın hız sınırlarına ulaştınız.
Düzeltme:
- Üstel geri çekilme uygulayın
x-ms-ratelimit-remainingbaşlığını kontrol edin- İstekleri gruplamayı düşünün
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
}
}
}
}
Alternatifler ve karşılaştırmalar
| Özellik | Azure API'leri | AWS API'leri | GCP API'leri |
|---|---|---|---|
| Kimlik Doğrulama | Azure AD (OAuth 2.0) | IAM (Sig v4) | OAuth 2.0 |
| SDK kalitesi | Mükemmel | Mükemmel | Mükemmel |
| Dokümantasyon | Kapsamlı ama dağınık | Hizmete özel | Hizmete özel |
| Hız sınırlama | Abonelik başına | Hizmet başına | Proje başına |
| Ücretsiz katman | 12 ay + her zaman ücretsiz | 12 ay | Her zaman ücretsiz + krediler |
Azure'ın kimlik doğrulaması, AWS'nin imza tabanlı yaklaşımından daha karmaşıktır, ancak kurumsal kimlik sistemleriyle daha iyi bütünleşir.
Gerçek dünya kullanım senaryoları
E-ticaret platformu. Bir Shopify alternatifi, ürün görselleri için Azure Blob Depolama, sipariş işleme web kancaları için Azure İşlevleri ve ürün açıklamaları için Azure OpenAI kullanır. Değişiklikleri dağıtmadan önce tüm API çağrılarını Apidog'da test ederler.
Sağlık Hizmetleri SaaS. Bir tıbbi kayıt sistemi, hasta verileri için Azure Cosmos DB, HL7 mesaj işleme için Azure İşlevleri ve sırlar için Azure Key Vault kullanır. API testi, her yanıt şemasını doğrulayarak HIPAA uyumluluğunu sağlar.
Yapay Zeka girişimi. Yapay zeka ajanları oluşturan bir şirket, LLM çağrıları için Azure OpenAI, eğitim verileri için Azure Depolama ve dağıtım için Azure Container Apps kullanır. Yerel geliştirme sırasında Azure API'lerini taklit etmek için Apidog'u kullanırlar.
Özetle
Öğrendikleriniz:
- Azure kimlik doğrulaması, Azure AD'den (Entra ID) OAuth 2.0 belirteçlerini kullanır
- Depolama API'leri
x-ms-versionbaşlığı ve uygun Taşıyıcı belirteçleri gerektirir - Bilgi İşlem API'leri Azure Kaynak Yöneticisi uç noktasını kullanır
- Yapay Zeka hizmetleri, hizmete bağlı olarak API anahtarları veya AAD belirteçleri kullanır
- Azure entegrasyonlarınızı Apidog ile test edin ve belgeleyin
Sonraki adımlarınız:
- Azure AD'de bir uygulama kaydedin ve kimlik bilgilerinizi alın
- İstemci kimlik bilgileri akışını kullanarak bir erişim belirteci isteyin
- İlk Azure Depolama API çağrınızı yapın
- Bu çağrıyı Apidog'a yeniden kullanılabilir bir istek olarak kaydedin
- Projenizin Azure API'leri için bir koleksiyon oluşturun
Azure API'lerini Apidog ile test edin - ücretsiz
SSS
Azure AD ile Microsoft Entra ID arasındaki fark nedir?Bunlar aynı şeylerdir. Microsoft, Azure Active Directory'yi 2023'te Microsoft Entra ID olarak yeniden markaladı. Dokümantasyonda her iki adı da göreceksiniz. Yeni dokümantasyon oluştururken Entra ID kullanın, ancak Azure AD'nin eski makalelerde ve kodda hala yaygın olduğunu bilin.
Azure OpenAI için API anahtarını nasıl alırım?Azure Portal → Azure OpenAI → kaynağınız → Anahtarlar ve Uç Nokta'ya gidin. İki anahtar göreceksiniz. İkisi de çalışır. Güvenlik için bunları periyodik olarak yeniden oluşturun. OpenAI'nin genel API'sinden farklı olarak, Azure OpenAI önce bir Azure aboneliği ve kaynak dağıtımı gerektirir.
management.azure.com ile hizmete özel uç noktalar arasındaki fark nedir?management.azure.com, Azure Kaynak Yöneticisi uç noktasıdır. Azure kaynaklarının kendileri üzerinde CRUD işlemleri (bir VM oluşturma, bir depolama hesabını silme) içindir. Hizmete özel uç noktalar ({hesap}.blob.core.windows.net, {kaynak}.openai.azure.com) bu kaynakları kullanmak içindir (bir dosya yükleme, metin oluşturma). Her biri için farklı belirteçlere ihtiyacınız vardır.
Azure erişim belirteçleri ne kadar süreyle geçerlidir?Tipik olarak 1 saat (3600 saniye). Eski belirteç süresi dolmadan yeni bir belirteç isteyebilirsiniz. Ne zaman yenilemeniz gerektiğini bilmek için belirteç yanıtından expires_in alanını kullanın. Her API çağrısında yeni bir belirteç istemeyin - bu verimsizdir.
İstemci sırları yerine yönetilen kimlikleri kullanabilir miyim?Evet, ve Azure'da çalışan üretim iş yükleri için kullanmalısınız. Yönetilen kimlikler, istemci sırlarını depolama ihtiyacını ortadan kaldırır. Azure VM'leri, İşlevleri, Kapsayıcı Uygulamaları ve AKS ile çalışırlar. Yerel geliştirme için Azure CLI (az login) veya istemci sırları olan ortam değişkenlerini kullanın.
API çağrım Postman'da çalışırken kodda neden başarısız oluyor?Başlıkları kontrol edin. Azure API'leri başlık adları için büyük/küçük harf duyarlıdır. Postman fark etmediğiniz başlıkları ekliyor olabilir. Fiddler veya Apidog'un istek denetimi gibi bir araç kullanarak Postman'dan gelen ham isteği kodunuzla karşılaştırın.
Azure aboneliği olmadan Azure API'lerini yerel olarak nasıl test edebilirim?Bir abonelik olmadan tam olarak test edemezsiniz, ancak Azure'ın yerel emülatörlerini kullanabilirsiniz:
- Azure Depolama için Azurite
- İşlevler için Azure İşlevleri Çekirdek Araçları
- Azure API yanıtlarını taklit etmek için Apidog'u kullanın
Azure API hatalarını işlemenin en iyi yolu nedir?Azure, ayrıntılı hata JSON'u döndürür. error.code ve error.message alanlarını ayrıştırın. Yaygın kodlar:
AuthenticationFailed- belirtecinizi kontrol edinResourceNotFound- kaynak adını kontrol edinOperationNotAllowed- abonelik limitlerinizi kontrol edin
