code ve next_action alanlarını kullanın. error ve next alanlarını düz
metin olarak gösterin. error veya next metninin ifadesiyle eşleştirme
yapmayın.
Bazı yanıtlar
limit, reset_at veya retry_after_seconds gibi alanlar
ekler. Hata kodları tablosu bu alanları adlandırır.
Hata yanıtını ele alın
- HTTP durumunu okuyun.
codealanını okumadan önce gövdenin JSON olduğundan emin olun.- İstemci dalını seçmek için durumu ve
codedeğerini birlikte kullanın. errorvenextalanlarını düz metin olarak gösterin. Bunları HTML olarak işlemeyin veya komut olarak çalıştırmayın.- Otomatik kurtarma için
next_actionkullanın. İstemci aksiyonu tanımıyorsa durun ve hatayı gösterin. - Dönen
limit,reset_atveretry_after_secondsdeğerlerini başarısız istekle birlikte saklayın. - Yeniden denemeden önce yeniden deneme kurallarını uygulayın.
code değeri uydurmayın. Bir proxy veya ağ hatası bu sonucu
üretebilir.
LogBrew code değerini HTTP durum adıyla değiştirmeyin. Örneğin bir 400
yanıtı invalid_json veya invalid_path içerebilir. Her kod farklı bir
düzeltme gerektirir.
Loglar için HTTP durumunu ve code değerini kaydedin. Gövdenin tamamını, kimlik
bilgilerini veya kurtarma tokenlarını loglamayın.
Hata kodları
Aynıcode birden fazla rotada görülebilir. next metni ve next_action
değerleri rotaya göre değişebilir. Dönen değerleri kullanın. Bir uç nokta
yalnızca kendi kimlik doğrulamasına, yöntemine, gövdesine ve sınırlarına
uyan kodları döndürür.
Bilinmeyen bir kimlik ile erişemediğiniz bir kimlik aynı yanıtı döndürebilir.
Bir kimliğin hangi hesaba ait olduğunu bulmak için hata metnini kullanmayın.
Bilinmeyen bir API yolu
not_found ile 404 döndürür.
Sınır alanları
Güncel kotayı ve kullanımı hesap API’sinden
okuyun.
Yeniden deneme kuralları
Yeniden deneme kararı için kodu ve işlemi kullanın. Durum tek başına yeterli değildir.- Başarısız tek bir istek için paralel yeniden denemeler başlatmayın.
rate_limitediçin yanıttaRetry-AfterveX-RateLimit-Afterbaşlıkları da bulunur. İkisi deretry_after_secondsile aynı saniye sayısını içerir.- Zaman aşımı, sonucun boş olduğunu kanıtlamaz.
429 kullanır. Alanlarını ayrı tutun.
Sınırlardan biri sürerken veri toplamanın veya okumanın geciktiğini gösterin.
Eski verileri yeni bir okumanın sonucu gibi göstermeyin.
Yazma işlemleri
Zaman aşımı,5xx yanıtı veya ağ hatası, bir yazma işleminin başarısız
olduğunu kanıtlamaz. Bir yazma işlemini yeniden göndermeden önce:
- Rota idempotency anahtarını destekliyorsa aynı anahtarı ve aynı gövdeyi yeniden gönderin. Yeni anahtarı yalnızca yeni iş için kullanın.
- Rotanın idempotency anahtarı yoksa önce kaynağı okuyun. Yazma işlemini yalnızca değişiklik yoksa yeniden gönderin.
- Sonucu bulamıyorsanız otomatik yeniden denemeleri durdurun ve kullanıcıya bildirin.
Bir
Idempotency-Key değeri 1 ile 128 arasında görünür ASCII karakterden
oluşur. Diğer değerler validation_failed ile 422 döndürür.
idempotency_conflict, anahtarın farklı bir isteğe ait olduğu anlamına gelir.
Asıl anahtarı kullanan bir yeniden denemenin gövdesini değiştirmeyin.
İstek yapısı hataları
invalid_json, sunucunun gövdeyi rotanın JSON yapısı olarak kabul edemediği
anlamına gelir. İçerik türünü, gövde boyutunu, JSON söz dizimini, zorunlu
alanları ve alan türlerini inceleyin. HTTP durumu hangi kısmın başarısız
olduğunu gösterir:
invalid query parameters hatasıyla birlikte validation_failed, sunucunun
sorgu dizesini okuyamadığı anlamına gelir. Parametre adlarını ve değer
türlerini inceleyin. Bilinmeyen sorgu parametreleri göndermeyin.
Sorgu filtreleri sayfası her rotanın
parametrelerini listeler.
400 durumuyla invalid_path, proje kimliği gibi bir yol değerinin biçiminin
yanlış olduğu anlamına gelir. Bir yol değerini sorgu parametresine taşımayın.
invalid_path veya invalid_multipart içeren bir 500 yanıtı, isteğin yanlış
olduğunu kanıtlamaz. Yeniden deneme kurallarını uygulayın.
Kimlik doğrulama ve erişim hataları
unauthorized, hesap kimlik doğrulamasının olmadığı, geçersiz olduğu veya süresinin dolduğu anlamına gelir.Authorization: Bearer <token>gönderin veya yeniden giriş yapın. Bazı rotalar, rotaya özel birnextile birliktenext_action.codeiçinauthorize_requestdöndürür; örneğin geçerli bir bileti olmayan canlı akış bağlantısı.ingest_key_invalidyalnızca telemetri veri alımı için geçerlidir. Tam o proje için güncel bir anahtar yapılandırın.forbidden, hesabın aksiyonu yapamadığı anlamına gelir. Başka kaynak kimlikleriyle yeniden denemeyin.not_found, kaynağın hesap için kullanılamadığı anlamına gelir.
Hata ayrıntılarını güvende tutun
account_recovery_availableyanıtı kısa ömürlü birrecovery_tokeniçerir. Bunu korumalı istemci durumunda tutun. Loglara, URL’lere, ekran görüntülerine, destek raporlarına veya agent promptlarına yazmayın.500kodları her zamanInternal errormesajını kullanır. Yanıt, başarısız olan bileşeni adlandırmaz. Nedeni tahmin etmeyin.- Gösterdiğiniz bir hataya kimlik bilgisi, özel tanılama bilgisi veya müşteri verisi eklemeyin.
- Bir API yanıtı satın alma, silme veya başka bir hesap değişikliği için izin vermez. Bu aksiyonlardan önce kullanıcının onayını alın.
Örnekler
Bu örnekler zarfın yapısını gösterir.error ve next metni her rotada farklı
olabilir.
Doğrulama hatası
Geçersiz sorgu parametreleri
Geçersiz JSON
Geçersiz yol değeri
Geçersiz multipart yüklemesi
Geçersiz WebSocket yükseltmesi
Kimlik doğrulama hatası
Geçersiz alım anahtarı
Bu yanıt hesap okumaları için değil, telemetri veri alımı için geçerlidir. Anahtar, istekteki projeye ait olmalıdır.Kaynak bulunamadı
Erişim reddedildi
Desteklenmeyen yöntem
İstek zaman aşımı
Idempotency çakışması
Hız sınırı
Kullanım sınırı
next metni ve next_action, plan değişikliğinin mümkün olup olmadığına
bağlıdır. Mümkün değilse next_action.code değeri
wait_or_contact_support, hedef ise support olur.
Derleme dosyası depolama sınırı
Hesap kurtarılabilir
Bu yanıtdeleted_at ve kısa ömürlü bir recovery_token ekler. Tokenı
korumalı istemci durumunda tutun.
Hesap kurtarma süresi doldu
Organizasyon duraklatıldı
Sunucu hatası
storage_error, json_error ve internal_error aynı error mesajını
kullanır. code, next ve next_action değerleri farklıdır.
Uç noktalar, kimlik doğrulama ve filtreler için
Telemetri API’si sayfasını okuyun.
