Zum Inhalt springen

Fehler

Die einheitliche Fehlerform, die Statuscodes und was bei jedem zu tun ist.

Eine Form für jeden Fehler

Jede Fehlerantwort hat dieselben Felder: den HTTP-Status in statusCode, einen stabilen code, den dein Programm prüfen kann, und eine für Menschen geschriebene message. Meldungen können sich ändern, Codes nicht.

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

Statuscodes

Diese Codes begegnen dir beim Lesen der öffentlichen API:

  • 400invalid_requestEin Parameter fehlt, hat den falschen Typ oder liegt außerhalb des Bereichs.
  • 403forbiddenDie Ressource existiert, aber ihr Besitzer hält sie privat.
  • 404not_foundUnter dieser Adresse gibt es nichts.
  • 429rate_limitedZu viele Anfragen von deiner Adresse; warte und versuche es erneut.
  • 500internal_errorBei uns ist etwas schiefgelaufen; versuche es später erneut.
  • 503unavailableEin Dienst, den die Operation braucht, etwa die Suche, ist kurz nicht verfügbar.

Ungültige Parameter

Fehlt ein Parameter oder liegt er außerhalb des Bereichs, lautet die Antwort 400 invalid_request, und issues listet jedes Problem mit dem Namen des Parameters auf.

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

Verschobene Werke

Stellen sich zwei Katalogeinträge als dasselbe Werk heraus, wird eines mit dem anderen zusammengeführt. Eine Anfrage nach dem alten antwortet mit 301 und der neuen ID oder dem neuen Medium und Slug in movedTo. Fordere die neue Adresse an und aktualisiere, was du gespeichert hast.

HTTP
HTTP/1.1 301 Moved Permanently

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

Private Profilbereiche

Mitglieder entscheiden, welche Teile ihres Profils öffentlich sind. Ein verborgener Bereich antwortet mit 403 und einem Code, der ihn benennt, etwa favorites_private, library_private, activity_private oder communities_private. Ein Mitglied, das seinen Benutzernamen geändert hat, antwortet mit 404 member_renamed und dem neuen Namen in username.

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