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.
{
"statusCode": 404,
"code": "not_found",
"message": "work not found"
}Statuscodes
Diese Codes begegnen dir beim Lesen der öffentlichen API:
- 400
invalid_requestEin Parameter fehlt, hat den falschen Typ oder liegt außerhalb des Bereichs. - 403
forbiddenDie Ressource existiert, aber ihr Besitzer hält sie privat. - 404
not_foundUnter dieser Adresse gibt es nichts. - 429
rate_limitedZu viele Anfragen von deiner Adresse; warte und versuche es erneut. - 500
internal_errorBei uns ist etwas schiefgelaufen; versuche es später erneut. - 503
unavailableEin 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.
{
"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/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.
{
"statusCode": 403,
"code": "favorites_private",
"message": "You are not allowed to do this."
}