İstek ve Yanıt Biçimi
Her adresin her ucunda tek bir zarf, tek bir durum kodu kümesi ve tek bir sayfalama biçimi.
Genel Bakış
Bir çağrının biçimi kaynaktan kaynağa değişmez. Bir yanıtı okuyabiliyorsanız hepsini okuyabilirsiniz; bir kez yazılan hata yönetimi entegrasyonunuz büyüdükçe çalışmaya devam eder.
İşin çoğunu iki kural taşır. Başarılı yanıt içeriğini data altına koyar, başarısız olan ise makine tarafından okunabilir bir kodu error altına koyar. HTTP durumu her zaman hangisinin geldiğiyle uyuşur.
Referans
İstek
JSON'u Content-Type: application/json başlığıyla gönderin. Form kodlu POST da kabul edilir; istemci başlığı kuramıyorsa bu işe yarar. Süzgeç, sıralama ve sayfalama her metotta sorgu dizesinde taşınır.
X-Api-Key.
application/json verin. Vermezseniz gövde form alanı olarak okunur.
POST ile gönderildiğinde değer metodun yerine geçer; başka bir metotta başlık yok sayılır, yani GET, GET olarak kalır.
Zarf
Başarı data taşır; içerik hakkında söylenecek bir şey varsa yanında meta gelir. Başarısızlık ise sabit bir code, insanın okuyacağı bir mesaj ve doğrulama hatalarında alanları adıyla veren bir details eşlemesi taşır.
{ "data": { "id": 42, "email": "[email protected]" } }
{ "data": [ ], "meta": { "total": 318, "page": 2, "limit": 25, "next_page": 3 } }
{ "error": { "code": "validation_failed", "message": "Email is not valid.",
"details": { "email": "invalid_format" } } }
Metne göre değil anahtara göre dallanın. code sözleşmenin parçası ve yerinde kalır; message kayıt okuyan bir insan için yazılmıştır ve yeniden ifade edilebilir.
Durum Kodları
Idempotency-Key ile bir istek hâlâ sürüyor. Bekleyip yeniden deneyin.
details alanları adıyla verir.
Retry-After süresine uyun.
Sayfalama
Liste uçları sorgu dizesinde page ve limit alır. limit varsayılan 25, tavanı 100; daha fazlasını istemek sessizce 100 verir. Sayfaları meta.next_page ile gezin; son sayfada değeri 0 olur.
Kaydırma tabanlı sayfalama v1 sözleşmesidir. İmleç tabanlı sayfalama yalnız veri bir zaman akışı olduğunda kullanılır, örneğin talep mesajlarında; o uçlar kendi imleç alanlarını kendileri anlatır.
Yanıt Başlıkları
Kimlik isteyen her yanıt bütçenizin durumunu bildirir, böylece tahminle değil ölçerek hız ayarlarsınız.
Örnek
curl -X POST 'https://panel.example.com/api/v1/admin/clients' \
-H 'Authorization: Bearer wak_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: signup-8f21c0' \
-d '{"name":"Ada","surname":"Lovelace","email":"[email protected]"}'
# 201 {"data":{"id":91,...}}
# aynı çağrı tekrar aynı gövdeyi döndürür ve ikinci bir müşteri oluşturmaz
# 201 Idempotency-Replayed: true
Tuzaklar
Liste yanıtı sayısını meta.total içinde tutar. total değerini kökten okumak size hiçbir şey vermez ve hata da üretmez; sonuç boş bir küme gibi görünür. Aynısı page ve limit için de geçerli.
Kurulum demo kipindeyken POST, PUT, PATCH ve DELETE herhangi bir kaynağa ulaşmadan 403 demo_mode ile döner. Okumalar çalışmaya devam eder, demo API üzerinden gezilebilir kalır. Yalnızca yazmalarda hata veren bir entegrasyonda önce buraya bakmaya değer.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.