Vai al contenuto

Errori

L'unica forma degli errori, i codici di stato e cosa fare per ciascuno.

Una sola forma per ogni errore

Ogni risposta di errore ha gli stessi campi: lo stato HTTP in statusCode, un code stabile da verificare nel tuo programma e un message scritto per le persone. I messaggi possono cambiare; i codici no.

JSON
{
  "statusCode": 404,
  "code": "not_found",
  "message": "work not found"
}

Codici di stato

Questi sono i codici che incontrerai leggendo l'API pubblica:

  • 400invalid_requestUn parametro manca, ha il tipo sbagliato o è fuori intervallo.
  • 403forbiddenLa risorsa esiste ma il proprietario la tiene privata.
  • 404not_foundNon c'è niente a questo indirizzo.
  • 429rate_limitedTroppe richieste dal tuo indirizzo; attendi e riprova.
  • 500internal_errorQualcosa è andato storto da parte nostra; riprova più tardi.
  • 503unavailableUn servizio necessario all'operazione, come la ricerca, è momentaneamente non disponibile.

Parametri non validi

Quando un parametro manca o è fuori intervallo la risposta è 400 invalid_request, e issues elenca ogni problema con il nome del parametro.

JSON
{
  "statusCode": 400,
  "code": "invalid_request",
  "message": "The request parameters are not valid.",
  "issues": ["limit: Too big: expected number to be <=50"]
}

Opere spostate

Quando due voci del catalogo risultano essere la stessa opera, una viene unita all'altra. Chiedere quella vecchia risponde 301 con il nuovo id, oppure il nuovo tipo e lo slug, in movedTo. Richiedi il nuovo indirizzo e aggiorna ciò che conservi.

HTTP
HTTP/1.1 301 Moved Permanently

{ "movedTo": "01a0cb02-0a14-7877-911d-5b4dde76df72" }

Sezioni private del profilo

I membri decidono quali parti del loro profilo sono pubbliche. Una sezione nascosta risponde 403 con un codice che la indica, come favorites_private, library_private, activity_private o communities_private. Un membro che ha cambiato nome utente risponde 404 member_renamed con il nuovo nome in username.

JSON
{
  "statusCode": 403,
  "code": "favorites_private",
  "message": "You are not allowed to do this."
}