REST API

Błędy

Obsługuj odpowiedzi o problemach i identyfikuj żądania.

Błędy są zgodne z formatem problem JSON z RFC 9457, z typem mediów application/problem+json.

{
  "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 to stały identyfikator problemu; title i detail go opisują. status odpowiada statusowi HTTP. Opcjonalne wpisy errors zawierają JSON Pointer i szczegóły walidacji; pusty wskaźnik oznacza całą treść. Przy zgłaszaniu problemu podaj request_id (także w X-Request-Id).

Wszystkie poniższe typy zaczynają się od https://www.ninjabuy.com/api/v1/problems/.

Końcówka typuHTTPZnaczenie / działanie
bad-json400Treść nie jest poprawnym JSON. Popraw składnię.
bad-body400Treść, parametry zapytania lub kursor nie przechodzą walidacji. Przeczytaj errors.
bad-idempotency-key400Użyj od 1 do 255 drukowalnych znaków ASCII w Idempotency-Key.
unauthorized401Podaj prawidłowy token Bearer; WWW-Authenticate wskazuje metadane.
not-found404Zasób jest niedostępny, nieznany lub nie należy do tego konta.
method-not-allowed405Użyj metody wskazanej w Allow.
idempotency-key-in-progress409Pierwsze żądanie z tym kluczem nadal działa. Poczekaj zgodnie z Retry-After.
upload-too-large413Przesłane bajty przekraczają zadeklarowany rozmiar lub 20 MiB.
unsupported-media-type415Wyślij Content-Type: application/json.
idempotency-key-reused422Ten klucz wykorzystano z innym żądaniem. Użyj nowego klucza.
invalid-workbook422Przesłany plik nie jest czytelnym XLSX/CSV mieszczącym się w limitach. Przeczytaj errors.
upload-expired422Rezerwacja przesyłania wygasła. Prześlij plik ponownie.
rate-limited429Przed ponowieniem odczekaj liczbę sekund z Retry-After.
search-rate-limited429Limit wyszukiwania słów kluczowych jest wyczerpany. Poczekaj zgodnie z Retry-After.
service-unavailable503Spróbuj ponownie za chwilę; uwzględnij Retry-After, jeśli występuje.
internal-error500Spróbuj później; zachowaj identyfikator żądania, jeśli problem trwa.

Poprawne żądanie może zawierać błędy poszczególnych danych wejściowych. Obsługuj statusy linków oddzielnie od błędów HTTP. Użyj Idempotency-Key, aby odtworzyć żądanie utworzenia; bez klucza ponowne wysłanie partii tworzy kolejne zadanie.