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 typu | HTTP | Znaczenie / działanie |
|---|---|---|
bad-json | 400 | Treść nie jest poprawnym JSON. Popraw składnię. |
bad-body | 400 | Treść, parametry zapytania lub kursor nie przechodzą walidacji. Przeczytaj errors. |
bad-idempotency-key | 400 | Użyj od 1 do 255 drukowalnych znaków ASCII w Idempotency-Key. |
unauthorized | 401 | Podaj prawidłowy token Bearer; WWW-Authenticate wskazuje metadane. |
not-found | 404 | Zasób jest niedostępny, nieznany lub nie należy do tego konta. |
method-not-allowed | 405 | Użyj metody wskazanej w Allow. |
idempotency-key-in-progress | 409 | Pierwsze żądanie z tym kluczem nadal działa. Poczekaj zgodnie z Retry-After. |
upload-too-large | 413 | Przesłane bajty przekraczają zadeklarowany rozmiar lub 20 MiB. |
unsupported-media-type | 415 | Wyślij Content-Type: application/json. |
idempotency-key-reused | 422 | Ten klucz wykorzystano z innym żądaniem. Użyj nowego klucza. |
invalid-workbook | 422 | Przesłany plik nie jest czytelnym XLSX/CSV mieszczącym się w limitach. Przeczytaj errors. |
upload-expired | 422 | Rezerwacja przesyłania wygasła. Prześlij plik ponownie. |
rate-limited | 429 | Przed ponowieniem odczekaj liczbę sekund z Retry-After. |
search-rate-limited | 429 | Limit wyszukiwania słów kluczowych jest wyczerpany. Poczekaj zgodnie z Retry-After. |
service-unavailable | 503 | Spróbuj ponownie za chwilę; uwzględnij Retry-After, jeśli występuje. |
internal-error | 500 | Spró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.