Zum Hauptinhalt springen

Fehlerbehandlung

Fehler treten an zwei Stellen auf, die unterschiedlich antworten:

  1. Bei der Anmeldung an der Token URL — der Anmeldedienst antwortet nach dem OAuth-Standard mit den Feldern error und error_description.
  2. Beim Aufruf einer Methode — die Schnittstelle antwortet mit einem HTTP-Statuscode und, wo möglich, einem Fehlerobjekt mit der Meldung in error.message.

Fehler bei der Anmeldung​

Schlägt die Anforderung eines Tokens fehl, enthält die Antwort ein JSON-Objekt wie dieses:

Antwort der Token URL (Beispiel)
{
"error": "invalid_request",
"error_description": "This client application is not allowed to use the specified scope.",
"error_uri": "https://documentation.openiddict.com/errors/ID2051"
}
errorerror_description (Beispiel)UrsacheWas tun?
invalid_client–Client-ID oder Secret falsch, Client gelöscht, neues Secret noch nicht eingetragen oder Änderung noch nicht wirksamClient-ID und Secret prüfen; nach Änderungen einige Minuten warten — siehe Speichern und Wirksamwerden
invalid_requestThis client application is not allowed to use the specified scope. (ID2051)Ein angeforderter Scope ist dem API-Client nicht zugewiesenScope weglassen oder im Reiter Scopes zuweisen
invalid_requestDie angeforderten Scopes passen nicht zur Ressource dieses Clients.Scope einer anderen Schnittstelle angefordert, z. B. vo_… mit einem Client für die Verein-APINur Scopes der Ressource des Clients anfordern — siehe Scopes
invalid_requestParameter 'apikey' fehlt.Beim Anmeldeweg api_key fehlt das Feld apikeyFeld apikey mitschicken — siehe Mit API-Schlüssel
invalid_grantAPI-Key ungültig. / Der API-Schlüssel ist für diesen Client nicht gültig.API-Schlüssel falsch oder gehört zu einem anderen API-ClientAPI-Schlüssel im Reiter API-Benutzer erneut abrufen
invalid_grantBenutzer oder Passwort ungültig.Anmeldedaten falschMitglieder: E-Mail-Adresse prüfen; Vereinsbenutzer: Format <VereinsID>#<Benutzername> prüfen — siehe Mit Benutzerdaten
unauthorized_client / unsupported_grant_type–Der Anmeldeweg ist für den API-Client nicht freigegebenPassende Zugriffsart ankreuzen

Fehler beim Aufruf einer Methode​

Statuscodes​

StatusBedeutungWas tun?
200, 204Erfolgreich–
400 Bad RequestDie übergebenen Daten sind ungültig, z. B. ein Pflichtfeld fehlterror.validationErrors auswerten und die Eingabe korrigieren
401 UnauthorizedKein, ein ungültiges oder ein abgelaufenes Token — bei der MO-API auch: keine Anmeldung als MitgliedNeues Token anfordern und den Aufruf einmal wiederholen
403 ForbiddenDem angemeldeten Benutzer fehlt ein Recht oder die Methode hat einen fachlichen Fehler gemeldeterror.message auswerten (siehe Hinweis unten)
404 Not FoundDer angefragte Datensatz existiert nichtID prüfen
500 Internal Server ErrorUnerwarteter Fehler in der SchnittstelleSpäter erneut versuchen; bei Wiederholung den Support mit Uhrzeit und aufgerufener Methode kontaktieren
501 Not ImplementedDie Funktion ist (noch) nicht umgesetzt–
403 bedeutet nicht immer „keine Berechtigung"

Fachliche Fehler — etwa ein Datensatz, der so nicht angelegt werden kann — liefern die Schnittstellen ebenfalls mit Status 403. Werten Sie deshalb immer error.message aus: Dort steht, ob ein Recht fehlt oder was fachlich nicht stimmt. Die Meldung ist für Anwender verständlich formuliert und kann direkt angezeigt werden.

Welche Statuscodes eine bestimmte Methode liefern kann, zeigt die Swagger-Oberfläche bei der Methode unter Responses.

Das Fehlerobjekt​

Bei den meisten Fehlern enthält die Antwort ein JSON-Objekt mit diesem Aufbau (Beispielwerte):

Fehlerobjekt
{
"error": {
"code": null,
"message": "Die Anfrage konnte nicht verarbeitet werden.",
"details": null,
"data": {},
"validationErrors": null
}
}
FeldBedeutung
messageDie Fehlermeldung — immer auswerten
codeOptionaler technischer Fehlercode
detailsOptionale weitere Angaben
dataOptionale zusätzliche Daten
validationErrorsNur bei Status 400: Liste der ungültigen Felder, je Eintrag mit message und den betroffenen Feldnamen in members

Bei Status 401 ist die Antwort häufig leer. Prüfen Sie deshalb immer zuerst den Statuscode und lesen Sie das Fehlerobjekt nur, wenn ein Inhalt vorhanden ist.

Fehler im Code auswerten​

Das folgende Beispiel ruft die Beispielmethode der VO-API auf und wertet einen Fehler aus. Tragen Sie oben im Beispiel ein gültiges Access Token ein, z. B. aus dem Schnellstart.

Eingabeaufforderung (CMD): Fehler auswerten
REM ACHTUNG: Nur zum lokalen Testen! Zugangsdaten niemals weitergeben oder veroeffentlichen.
REM Tragen Sie hier Ihre Werte ein:
set "ACCESS_TOKEN=access_token_aus_der_token_antwort"

REM Aufruf mit Ausgabe des HTTP-Statuscodes in der letzten Zeile;
REM bei einem Fehler steht die Meldung im Feld error.message
curl -s -w "\nHTTP-Status: %{http_code}\n" -X POST "https://voapi.netxp-verein.de/api/app/member-search/list" ^
-H "Authorization: Bearer %ACCESS_TOKEN%" ^
-H "Content-Type: application/json" ^
-d "{\"maxResultCount\": 1}"

echo.
pause

Fehler beim Einrichten​

Probleme beim Anlegen und Speichern eines API-Clients sind auf der Seite API-Clients unter Häufige Fehler beschrieben.

Verwandte Themen​