Allgemein

Anders als REST-Endpunkte werden bei GraphQL keine HTTP Status-Codes genutzt, um einen fehlerhaften Request anzuzeigen. Stattdessen wird in der Antwort ein errors-Array angehängt, dass alle aufgetretenen Fehlermeldungen beinhaltet.

Trotzdem wird bei einigen Fehlern ein anderer Status als 200 (OK) zurückgegeben. Oftmals ist dies ein 400 (Bad Request). Die Auswertung der Fehler sollte aber über die Analyse des error-Arrays laufen. Die generelle Struktur einer Fehlerantwort sieht wie folgt aus:

  • Response
    • errors: Array aller Fehlermeldungen
        1. Fehlermeldung
          • message: Fehlermeldung und Stacktrace
          • locations: Ortsangabe des Fehlers im Code
            • line: Angabe der Code-Zeile, in der der Fehler auftrat
            • column: Angabe der Code-Spalte, in der der Fehler auftrat
          • path: zeigt den angefragten Pfad
          • extensions: hier wird ein Enum-Wert für den spezifischen Fehler mitgegeben

Beispiel-Fehlermeldungen

Fachlicher Fehler

Validierungsfehler

Validierungsfehler werden sicherlich den größten Anteil der auftretenden Fehler ausmachen. Immer, wenn die Anfragen inhaltlich unvollständig oder fehlerhaft sind, wird ein Fehler geworfen. Beispiele sind:

Falsche Feldnamen

Werden Feldnamen falsch oder gar nicht in Queries oder Mutations verwendet, führt dies ebenfalls zu Fehlern:

Falsche Datentypen

Anfrage mit falschem Datentypen führen zu einem UnhandledError / InvalidOperationException.

Falscher Status für den SellerSync

Die Fehlermeldungen für den SellerSync müssen noch definiert werden.

Authentifizierungsfehler

Wird eine Anfrage ohne die entsprechenden Rechte gemacht, so wird ein UnhandledError bzw. eine AuthenticationException geworfen.

Unbestimmter Fehler

Nicht weiter definierte Fehler werden als Unexpected Execution Error zurückgegeben.