API REST

Errori

Gestisci il contratto delle risposte di errore e correla le richieste.

Gli errori seguono il contratto JSON dei problemi della RFC 9457, con il tipo di media 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 è l'identificatore stabile del problema; title e detail lo descrivono. status corrisponde allo stato HTTP. Le voci facoltative di errors contengono un JSON Pointer e dettagli di validazione; un puntatore vuoto indica l'intero corpo. Riporta request_id (anche in X-Request-Id) quando segnali un problema.

Tutti i tipi seguenti iniziano con https://www.ninjabuy.com/api/v1/problems/.

Suffisso del tipoHTTPSignificato / azione
bad-json400Il corpo non è JSON valido. Correggi la sintassi.
bad-body400Il corpo, i parametri di query o il cursore non superano la validazione. Leggi errors.
bad-idempotency-key400Usa da 1 a 255 caratteri ASCII stampabili per Idempotency-Key.
unauthorized401Fornisci un token bearer valido; WWW-Authenticate fornisce i metadati di discovery.
not-found404La risorsa non è disponibile, è sconosciuta o non appartiene a questo account.
method-not-allowed405Usa il metodo indicato in Allow.
idempotency-key-in-progress409La prima richiesta con questa chiave è in corso. Attendi il tempo di Retry-After.
upload-too-large413I byte caricati superano la dimensione dichiarata o il limite di 20 MiB.
unsupported-media-type415Invia Content-Type: application/json.
idempotency-key-reused422Questa chiave è stata usata con un’altra richiesta. Usa una nuova chiave.
invalid-workbook422Il file caricato non è un XLSX/CSV leggibile entro i limiti. Leggi errors.
upload-expired422La prenotazione di caricamento è scaduta. Carica di nuovo il file.
rate-limited429Attendi i secondi indicati in Retry-After prima di riprovare.
search-rate-limited429La finestra di ricerca per parole chiave è piena. Attendi il tempo di Retry-After.
service-unavailable503Riprova a breve; rispetta Retry-After se presente.
internal-error500Riprova più tardi; conserva l'identificatore della richiesta se il problema persiste.

Una richiesta riuscita può comunque contenere errori relativi ai singoli input. Gestisci gli stati dei link separatamente dagli errori HTTP. Usa Idempotency-Key per riprodurre una richiesta di creazione; senza chiave, ripetere l’invio di un batch crea un’altra operazione.