REST API

Hatalar

Sorun yanıtı sözleşmesini işleyin ve istekleri ilişkilendirin.

Hatalar, application/problem+json medya türüyle RFC 9457 sorun JSON sözleşmesini izler.

{
  "type": "https://www.ninjabuy.com/api/v1/problems/bad-body",
  "title": "Invalid request",
  "status": 400,
  "detail": "The request did not match the expected shape.",
  "request_id": "REQUEST_ID",
  "errors": [{"pointer": "/links", "detail": "Validation detail"}]
}

type, sabit sorun tanımlayıcısıdır; title ve detail sorunu açıklar. status, HTTP durumuyla eşleşir. İsteğe bağlı errors girdileri bir JSON Pointer ve doğrulama ayrıntısı içerir; boş işaretçi tüm gövdeyi belirtir. Sorun bildirirken request_id değerini (X-Request-Id içinde de bulunur) paylaşın.

Aşağıdaki tüm türler https://www.ninjabuy.com/api/v1/problems/ ile başlar.

Tür son ekiHTTPAnlamı / yapılacak işlem
bad-json400Gövde geçerli JSON değil. Sözdizimini düzeltin.
bad-body400Gövde, sorgu parametreleri veya imleç doğrulanamadı. errors alanını okuyun.
bad-idempotency-key400Idempotency-Key için 1 ile 255 yazdırılabilir ASCII karakteri kullanın.
unauthorized401Geçerli bir bearer belirteci sağlayın; WWW-Authenticate keşif bilgilerini içerir.
not-found404Kaynak kullanılamıyor, bilinmiyor veya bu hesaba ait değil.
method-not-allowed405Allow içinde belirtilen yöntemi kullanın.
idempotency-key-in-progress409Bu anahtarla gönderilen ilk istek çalışıyor. Retry-After süresince bekleyin.
upload-too-large413Yüklenen baytlar bildirilen boyutu veya 20 MiB sınırını aşıyor.
unsupported-media-type415Content-Type: application/json gönderin.
idempotency-key-reused422Bu anahtar başka bir istekle kullanıldı. Yeni bir anahtar kullanın.
invalid-workbook422Yükleme, sınırlar içinde okunabilir bir XLSX/CSV değil. errors alanını okuyun.
upload-expired422Yükleme ayırmanın süresi doldu. Dosyayı yeniden yükleyin.
rate-limited429Yeniden denemeden önce Retry-After saniyesi kadar bekleyin.
search-rate-limited429Anahtar sözcük araması penceresi dolu. Retry-After süresince bekleyin.
service-unavailable503Kısa süre sonra yeniden deneyin; varsa Retry-After değerine uyun.
internal-error500Daha sonra yeniden deneyin; sorun sürerse istek kimliğini saklayın.

Başarılı bir istek yine de girdi bazında hatalar içerebilir. Bağlantı durumlarını HTTP hatalarından ayrı işleyin. Oluşturma isteğini yinelemek için Idempotency-Key kullanın; anahtar olmadan toplu iş gönderimini yinelemek başka bir iş oluşturur.