Bulbulustur Geliştirici

Hata Kodları V1

API hata yanıtlarını HTTP durum kodları ve dönen hata açıklamaları üzerinden değerlendirin. Bu sayfa mevcut hata davranışlarını, hata yönetimi önerilerini ve planlanan ortak hata kodu standardını ele alır.

HTTP Durum Kodları

HTTP durumları ve önerilen işlemler

Bulbulustur API, HTTP durum kodlarıyla isteğin sonucunu bildirir. Yanıt gövdesindeki success ve errorType işleme ilişkin ek bilgi sağlar.

DurumAnlamEntegrasyon davranışı
200BaşarılıYanıttaki data alanını işle
400Geçersiz istek veya iş kuralıParametreyi/iş koşulunu düzelt; körlemesine yeniden deneme
401Kimlik doğrulama başarısızAPI Key ve API Secret değerlerini kontrol et
403YasakYetki veya erişim politikasını kontrol et; her endpointin bu kodu ürettiği garanti değildir
404Kaynak bulunamadıGönderilen varyant/sipariş/iade kimliğini doğrula
429İstek limiti aşıldıİstek hızını azalt ve artan gecikmeyle tekrar dene
500Beklenmedik sunucu hatasıİstek bağlamını kaydet, güvenli tekrar deneme stratejisi uygula
502Bağımlı servis hatasıReferans servisi geçici olarak kullanılamıyor olabilir; kontrollü tekrar dene

Not: Bu tablo HTTP anlamlarını ve mevcut implementasyonlarda görülen durumları açıklar; bütün endpointlerin bütün durum kodlarını üretmesi beklenmez.

Hata Yanıtı Modeli

Result ve hata alanları

Bulbulustur'un mevcut servis yanıtları Result veya Result<T> yapısını kullanır. Hata yanıtları tek bir error nesnesi içine sarılmak zorunda değildir.

Result hata alanları

successboolean

İşlemin başarılı olup olmadığını bildirir; Result.AsError(...) için false.

messagestring

İnsan tarafından okunabilen hata açıklaması. Sabit bir makine kodu gibi ayrıştırmayın.

errorTypeenum

İç ErrorType türü: None (0), BussinessRuleViolation (1), Exception (2). Varsayılan JSON enum yapılandırmasına göre sayı olarak serileştirilebilir; özel sabit JSON enum string sözleşmesi ilan edilmemiştir.

responseId, responseKeyinteger, string

Sonuç nesnesinin ek alanlarıdır; her hata için dolu ve benzersiz hata izleme kimliği oldukları garanti edilmez.

Modelde ayrıca exception ve messageReplacements alanları bulunur. Public API'de bunlara güvenerek iş akışı kurmayın. İstisna ayrıntılarının dışarı dönmemesi ayrıca güvenlik incelemesinde ele alınmalıdır.

Hata Türleri ve Örnekler

Doğrulanmış durum senaryoları

Hata türünü tek başına HTTP statüsünün yerine kullanmayın. Aynı BussinessRuleViolation türü farklı controllerlarda 400, 401 veya 404 ile dönebilir.

Doğrulanmış örnekler

İstekDurumNeden
GET /api/products/{variantId}404Belirtilen ürün varyantı bulunamadı
GET /api/categories?languageId=99400Geçersiz dil aralığı
GET /api/brands401Geçerli mağaza kimliği bulunamadı
GET /api/colors502Referans veri servisi erişilemiyor
Rate-limit politikalı istek429Bir dakikalık istek kotası aşıldı

Parametre hatalarını düzeltmek gerekir; geçici bağımlılık sorunlarında yeniden deneme uygun olabilir.

Hata Yönetimi

İstemci entegrasyonu ve yeniden deneme

HTTP koduna göre karar

400 ve 404: Parametre veya kaynak kimliğini düzeltin. Aynı isteği değiştirmeden tekrar etmek genellikle çözüm değildir.

401: Anahtar/secret ve bağlı mağaza durumunu kontrol edin. Hatalı kimlik bilgileriyle sürekli tekrar denemeyin.

429: İstek hızını azaltın. Sunucu Retry-After sağlıyorsa esas alın; her yanıtta garanti değildir. Aksi durumda artan gecikme ve jitter uygulayın.

500 / 502 / 503 / 504: Geçici hata olabilir. Salt okunur GET istekleri, sınırlı sayıda tekrar denenebilir; veri değiştiren işlemleri idempotency güvencesi doğrulanmadan otomatik tekrarlamayın.

Loglama

İstek yolu, HTTP statüsü, UTC zaman, endpoint ve gizli olmayan korelasyon bilgilerini kaydedin. API Key / API Secret veya kişisel verileri loglamayın.

İstek hızı

Mevcut fixed politikası genel API'de dakika başına 120, kimlik testi yolunda dakika başına 20 istek / istemci IP sınırı uygular. Limitler bölümüne bakın.