Aller au contenu

Erreurs

La forme unique des erreurs, les codes de statut et que faire pour chacun.

Une seule forme pour toutes les erreurs

Chaque réponse d’erreur a les mêmes champs : le statut HTTP dans statusCode, un code stable à tester dans votre programme et un message rédigé pour les humains. Les messages peuvent changer ; les codes, non.

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

Codes de statut

Voici les codes que vous rencontrerez en lisant l’API publique :

  • 400invalid_requestUn paramètre est manquant, a un type incorrect ou est hors limites.
  • 403forbiddenLa ressource existe, mais son propriétaire la garde privée.
  • 404not_foundIl n’y a rien à cette adresse.
  • 429rate_limitedTrop de requêtes depuis votre adresse ; patientez puis réessayez.
  • 500internal_errorUn problème est survenu de notre côté ; réessayez plus tard.
  • 503unavailableUn service dont l’opération a besoin, comme la recherche, est momentanément indisponible.

Paramètres invalides

Lorsqu’un paramètre est manquant ou hors limites, la réponse est 400 invalid_request, et issues liste chaque problème avec le nom du paramètre.

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

Œuvres déplacées

Lorsque deux fiches du catalogue s’avèrent être la même œuvre, l’une est fusionnée dans l’autre. Une demande portant sur l’ancienne répond 301 avec le nouvel identifiant, ou le nouveau format et le nouveau slug, dans movedTo. Demandez la nouvelle adresse et mettez à jour ce que vous stockez.

HTTP
HTTP/1.1 301 Moved Permanently

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

Sections privées des profils

Les membres décident quelles parties de leur profil sont publiques. Une section masquée répond 403 avec un code qui la nomme, comme favorites_private, library_private, activity_private ou communities_private. Un membre qui a changé de nom d’utilisateur répond 404 member_renamed avec le nouveau nom dans username.

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