{ }
type
GraphQL · Debugging · Altair · GraphiQL · Insomnia · Postman
GraphQL Debugging:
Altair, GraphiQL, Insomnia und Postman

Das richtige Debugging-Tool für GraphQL ist nicht immer das bekannteste. Ob Browser-eingebettet, Desktop-App oder API-Client – jedes Tool hat seinen Platz im Diagnose-Workflow. Wer die Stärken kennt, debuggt Queries, Auth-Probleme und Resolver-Fehler effizienter.

13 Min. Lesezeit Altair · GraphiQL · Insomnia · Postman · curl · Magento-Auth GraphQL · Magento 2 · API-Testing

1. Warum GraphQL-Debugging anders funktioniert als REST-Testing

REST-Debugging bedeutet typischerweise: URL aufrufen, HTTP-Methode wählen, Antwort prüfen. GraphQL konzentriert alle Operationen auf einen einzigen Endpunkt, was die Tool-Auswahl verändert. Statt URL-Variation braucht man Schema-Exploration, Query-Builder mit Autocomplete und die Fähigkeit, strukturierte JSON-Bodys mit verschachtelten Queries schnell zu formulieren. Tools, die nur HTTP-Requests verstehen, eignen sich für einfache GraphQL-Aufrufe, bieten aber keine Schema-Unterstützung.

Ein weiterer Unterschied: GraphQL gibt auch bei Fehlern HTTP 200 zurück. Der Fehler steckt im errors-Array des JSON-Bodys, nicht im HTTP-Statuscode. Das bedeutet, dass Tools, die ausschließlich auf HTTP-Statuscodes reagieren, GraphQL-Fehler als Erfolg werten. Wer das nicht beachtet, debuggt an der falschen Stelle. Gute GraphQL-Debugging-Tools parsen die Antwort und zeigen Fehler im errors-Array gesondert an.

2. GraphiQL: Der eingebettete Browser-Standard

GraphiQL ist der Referenz-Explorer für GraphQL, der direkt im Browser läuft und von den meisten GraphQL-Servern – inklusive Magento – optional bereitgestellt werden kann. Es bietet Schema-Exploration über die Sidebar, Autocomplete beim Tippen der Query und direkte Ausführung gegen den konfigurierten Endpunkt. Für schnelles Ausprobieren auf einem eigenen Development-Server ohne zusätzliche Tool-Installation ist GraphiQL die erste Wahl.

Die Grenzen von GraphiQL liegen in der Auth-Konfiguration. Standard-GraphiQL hat keine eingebaute UI für persistente HTTP-Header. Wer einen Bearer-Token setzen muss, ist auf Browser-Plugins oder benutzerdefinierte GraphiQL-Setups mit Header-Unterstützung angewiesen. Die modernere Variante GraphiQL v2 bringt eine Header-Konfiguration mit, ist aber nicht überall verfügbar. In Magento-Projekten ist der Magento-eigene GraphQL-Playground (/graphql mit aktiviertem Explorer) eine gute Alternative, die direkt Magento-Kontext bietet.


# Typical GraphiQL workflow: schema exploration then query execution

# Step 1: explore available queries via schema sidebar
# Step 2: use autocomplete to build the query

query ExploreCustomerType {
  customer {
    # Autocomplete shows all available fields from Customer type
    firstname
    lastname
    email
    orders {
      items {
        order_number
        status
        grand_total { value currency }
      }
    }
  }
}

# Step 3: set variables in the Variables panel
# { }  — no variables needed for this query

# Step 4: add Authorization header in Headers panel (GraphiQL v2):
# { "Authorization": "Bearer <customer-token>" }

3. Altair GraphQL Client: Desktop-Power für komplexe Szenarien

Altair ist eine Desktop-App (verfügbar für macOS, Windows und Linux sowie als Browser-Extension), die für den täglichen GraphQL-Debugging-Einsatz konzipiert ist. Es bietet persistente Header-Konfiguration, Environments für unterschiedliche Stages (Local, Staging, Production), Collections für häufig verwendete Queries und einen integrierten Schema-Dokumentationsbrowser. Wer täglich mit GraphQL-APIs arbeitet, wird Altair als vollständiges Werkzeug schätzen.

Besonders nützlich für Magento-Debugging: Altair erlaubt, Environments mit unterschiedlichen Bearer-Tokens zu konfigurieren, sodass zwischen Gast-Anfragen und authentifizierten Kunden-Anfragen einfach umgeschaltet werden kann. Der History-Tab zeigt alle zuletzt gesendeten Queries, was das Reproduzieren von Bugs erheblich erleichtert. Das Plugin-System von Altair ermöglicht darüber hinaus Schema-Diff-Visualisierungen und direkte Subscription-Unterstützung, wenn der Server WebSocket-Verbindungen für GraphQL Subscriptions anbietet.

4. Insomnia: GraphQL-Support im API-Client-Kontext

Insomnia ist ein allgemeiner API-Client, der GraphQL nativ unterstützt. Im Gegensatz zu reinen GraphQL-Tools wie Altair behandelt Insomnia GraphQL als einen von mehreren Anfrage-Typen neben REST, gRPC und WebSockets. Das ist ein Vorteil für Teams, die REST und GraphQL parallel debuggen, weil alle Anfragen in einer einzigen Tool-Oberfläche verwaltet werden können.

Insomnia bietet automatische Schema-Introspection, Autocomplete in der Query-Eingabe und Variablen-Panels. Auth-Konfiguration über Bearer-Token, OAuth und weitere Methoden ist nativ eingebaut. Ein praktischer Aspekt für Magento-Debugging: Insomnia erlaubt, eine Generate-Token-Anfrage (REST-POST gegen Magento) und eine GraphQL-Query in derselben Collection zu speichern und nacheinander auszuführen. Das erleichtert den Auth-Workflow, bei dem der Token zuerst bezogen und dann in die GraphQL-Anfrage eingesetzt werden muss.

5. Postman: GraphQL in bestehenden REST-Workflows

Postman unterstützt GraphQL seit mehreren Jahren und ist für Teams interessant, die bereits eine umfangreiche Postman-Collection für REST-Endpunkte haben und GraphQL-Anfragen in dasselbe System integrieren möchten. Das GraphQL-Schema wird in Postman importiert, Autocomplete steht dann in der Query-Eingabe zur Verfügung. Collection-Runner, Automated Testing und Monitoring sind Postman-Stärken, die auch für GraphQL nutzbar sind.

Die Schwäche von Postman im GraphQL-Kontext liegt in der Tiefe der Schema-Exploration. GraphQL-native Tools wie Altair oder GraphiQL bieten intuitivere Schema-Browser und bessere Autocomplete-Erfahrungen. Für reine Explorations-Sessions ist Postman weniger geeignet. Für das Einbinden von GraphQL-Anfragen in bestehende CI/CD-Workflows und Collections ist Postman hingegen gut positioniert, insbesondere wenn das Team Postman bereits für REST nutzt.


# Magento debugging workflow: token first, then authenticated query

# Step 1: get customer token (works in all tools as POST request)
# POST https://shop.example.com/graphql
# Content-Type: application/json
mutation GetToken {
  generateCustomerToken(email: "customer@example.com", password: "password123") {
    token
  }
}

# Step 2: use token in authenticated query
# Authorization: Bearer <token-from-step-1>
query DebugCustomerOrders {
  customer {
    firstname
    orders(pageSize: 5) {
      items {
        order_number
        status
        created_at
        grand_total { value currency }
        items {
          product_name
          quantity_ordered
          product_sale_price { value }
        }
      }
    }
  }
}

# If errors appear: check errors[] array, not HTTP status
# HTTP 200 does NOT mean success in GraphQL

6. Auth-Header konfigurieren: Token-Workflow in jedem Tool

In allen vier Tools muss der Bearer-Token als HTTP-Header gesetzt werden: Authorization: Bearer TOKEN. Der Unterschied liegt in der UX: Altair und Insomnia bieten dedizierte Header-Panels mit Persistenz und Environment-Variablen. Postman erlaubt Auth-Konfiguration auf Collection-Ebene, die sich automatisch auf alle Anfragen in der Collection anwendet. GraphiQL erfordert in der Basisversion Browser-Plugins oder Custom-Implementierungen für persistente Header.

Für Magento-Projekte mit Token-Ablauf ist ein Environment-basierter Workflow sinnvoll: Das Environment speichert den Token als Variable, eine dedizierte Anfrage bezieht einen neuen Token und aktualisiert die Variable. Altair unterstützt diesen Workflow mit Pre-Request-Scripts, Insomnia mit Chain-Requests. Das manuelle Kopieren des Tokens aus einer Token-Anfrage in eine Query-Anfrage ist fehleranfällig und sollte durch einen strukturierten Workflow ersetzt werden, sobald der Debugging-Aufwand regelmäßig anfällt.

7. Magento-spezifisches Debugging: Fehlerquellen und Diagnose-Workflow

Magento-GraphQL-Fehler haben spezifische Muster, die man kennen muss. Resolver-Exceptions werden in strukturierte GraphQL-Fehler überführt und im errors-Array der Antwort zurückgegeben. In Development-Umgebungen enthält das extensions-Objekt oft Stack-Trace-Informationen, die den Fehlerursprung direkt zeigen. In Produktionsumgebungen sind diese Informationen ausgeblendet – ein weiterer Grund, Bugs in Development zu reproduzieren, bevor sie produktiv werden.

Ein häufiges Diagnoseproblem in Magento: Die Query liefert leere Arrays oder null, ohne einen expliziten Fehler zu werfen. Das deutet typischerweise auf ein Sichtbarkeits- oder Berechtigungsproblem hin, nicht auf einen Resolver-Fehler. Der Debugging-Workflow: Query zuerst ohne Auth-Header testen (Gast-Kontext), dann mit Token testen und die Antworten vergleichen. Unterschiede zeigen, welche Felder Auth-abhängig sind. Dann Magento-Logs (var/log/system.log, var/log/exception.log) prüfen, um PHP-Fehler zu finden, die nicht in die GraphQL-Antwort übernommen wurden.

8. Tool-Vergleich: Was wann sinnvoll ist

Kein Debugging-Tool ist für alle Szenarien optimal. Die Stärken der Tools ergänzen sich, und in der Praxis wechselt man je nach Kontext zwischen ihnen.

Tool Stärke Schwäche Ideal für
GraphiQL Browser-eingebettet, kein Install Kein persistenter Header (v1) Schnelle Schema-Exploration
Altair Environments, Collections, History Desktop-App, Installation nötig Tägliches GraphQL-Debugging
Insomnia REST + GraphQL in einem Tool Weniger GraphQL-fokussiert REST/GraphQL-Teams
Postman CI/CD-Integration, Monitoring Schema-Exploration schwächer Automated Testing, Collections
curl Kein Tool nötig, skriptbar Kein Autocomplete, kein Schema CI-Scripts, schnelle Checks

Für Magento-Entwicklung empfiehlt sich eine Kombination: Altair für den täglichen Entwicklungs-Workflow mit Environments und Collections, GraphiQL für schnelle Schema-Checks direkt im Browser, curl für CI-Scripts und automatisierte Verifikationsschritte. Postman ist sinnvoll, wenn das Team bereits REST-Collections in Postman pflegt und GraphQL-Anfragen in denselben Kontext integrieren möchte.

9. Typische Debugging-Fehler und wie man sie vermeidet

Der häufigste Fehler beim GraphQL-Debugging ist, HTTP 200 als Erfolgssignal zu werten. GraphQL gibt immer HTTP 200, auch wenn der Resolver einen Fehler geworfen hat. Wer das übersieht, debuggt an der falschen Stelle. Alle genannten Tools zeigen das errors-Array in der Antwort an – aber nur, wenn man aktiv hinschaut. Ein guter Workflow: Nach jeder Anfrage zuerst das errors-Array prüfen, bevor die data-Sektion untersucht wird.

Ein zweiter verbreiteter Fehler ist das Fehlen von Variablen-Panels. Statt Variablen direkt in die Query einzubetten, sollten sie als JSON-Variablen in das Variables-Panel eingetragen werden. Queries mit eingebetteten Werten sind nicht parametrisierbar, schwerer wiederverwendbar und können bei Sonderzeichen (Anführungszeichen in Strings) zu JSON-Parsing-Fehlern führen. Alle vier Tools bieten ein Variables-Panel – es sollte konsequent genutzt werden.


# WRONG — value embedded directly in query, not parametrizable
query {
  products(search: "Leder-Handtasche 42cm (braun)") {
    items { sku name }
  }
}

# RIGHT — variable in Variables panel, query parametrizable and reusable
query SearchProducts($search: String!, $pageSize: Int = 10) {
  products(search: $search, pageSize: $pageSize) {
    total_count
    items {
      sku
      name
      price_range {
        minimum_price {
          final_price { value currency }
        }
      }
    }
  }
}

# Variables panel:
# {
#   "search": "Leder-Handtasche 42cm (braun)",
#   "pageSize": 5
# }

# Checking errors array first — always before inspecting data:
# { "errors": [...], "data": { "products": null } }
# vs.
# { "data": { "products": { "total_count": 3, "items": [...] } } }

10. Zusammenfassung

Effizientes GraphQL-Debugging erfordert das richtige Tool für den richtigen Kontext. GraphiQL ist der schnellste Einstieg für Browser-basierte Schema-Exploration. Altair ist das vollständigste Desktop-Tool für den täglichen Debugging-Workflow mit Environments, Collections und History. Insomnia und Postman sind sinnvoll, wenn REST und GraphQL in einer einzigen Oberfläche verwaltet werden sollen oder CI-Integration gefragt ist.

Für Magento-Debugging sind die wichtigsten Prinzipien unabhängig vom Tool: HTTP 200 ist kein Erfolg, immer das errors-Array prüfen. Variablen in das Variables-Panel auslagern statt in die Query einbetten. Auth-Workflow mit Environments strukturieren, um Token-Handling zu automatisieren. Antworten zwischen Gast- und Kunden-Kontext vergleichen, um sichtbarkeitsbedingte leere Ergebnisse von echten Fehlern zu unterscheiden.

GraphQL Debugging — Das Wichtigste auf einen Blick

HTTP 200 ist kein Erfolg

GraphQL gibt immer HTTP 200. Fehler stehen im errors-Array der JSON-Antwort. Immer zuerst prüfen, bevor data ausgewertet wird.

Altair für den Alltag

Environments für unterschiedliche Stages, Collections für häufige Queries, History für Bug-Reproduktion. Umschalten zwischen Gast und Kunde per Environment.

Variablen-Panel nutzen

Werte nicht in Queries einbetten. Variables-Panel in allen Tools nutzen – parametrisierbare, wiederverwendbare Queries ohne JSON-Parsing-Probleme.

Magento-Logs parallel

Fehler, die nicht im GraphQL-errors-Array erscheinen, stehen in var/log/exception.log. Beide Quellen parallel prüfen bei unklaren Leerantworten.

11. FAQ: GraphQL Debugging mit Altair, GraphiQL, Insomnia und Postman

1Warum gibt Magento GraphQL HTTP 200 bei Fehlern zurück?
GraphQL-Standard: immer HTTP 200, Fehler stehen im errors-Array des JSON-Response-Bodys, nicht im HTTP-Status.
2Welches Tool für tägliches Magento-GraphQL-Debugging?
Altair – Environments für Stages, Collections für häufige Queries, History für Bug-Reproduktion. GraphiQL für schnelle Schema-Checks im Browser.
3Wie setze ich einen Bearer-Token in GraphiQL?
In GraphiQL v2 im Headers-Panel. In v1 Browser-Plugin oder Custom-Implementierung nötig.
4Leere Arrays ohne Fehler – was bedeutet das in Magento?
Typischerweise Sichtbarkeits- oder Berechtigungsproblem. Gast-Kontext vs. authentifizierten Kontext vergleichen, Magento-Logs parallel prüfen.
5Kann ich Postman für GraphQL verwenden?
Ja, mit Schema-Import und Autocomplete. Sinnvoll wenn bereits REST-Collections in Postman existieren. Für reine Schema-Exploration besser spezialisierte Tools.
6Wie automatisiere ich den Token-Workflow in Altair?
Environments mit Token-Variablen konfigurieren. Pre-Request-Scripts für automatisches Token-Bezogen. Token-Endpunkt als separater Request in der Collection.
7Unterschied Insomnia vs. Altair für GraphQL?
Altair GraphQL-spezialisiert mit tiefer Schema-Exploration. Insomnia allgemeiner API-Client (REST + GraphQL). Für rein GraphQL-fokussierte Arbeit Altair besser, für gemischte Teams Insomnia.
8Warum keine Werte direkt in Queries einbetten?
Nicht parametrisierbar, schwerer wiederverwendbar, JSON-Parsing-Fehler bei Sonderzeichen möglich. Variables-Panel in allen Tools verwenden.
9Resolver-Fehler nur in Log, nicht im GraphQL-Response?
Developer-Mode aktivieren – dann erscheint Stack-Trace im extensions-Objekt der GraphQL-Antwort. In Produktion nur in var/log/exception.log.
10GraphQL-Queries in CI-Pipelines ausführen?
Ja, mit curl oder Postman Collection Runner. curl --data mit JSON-Body und Authorization-Header für einfache CI-Checks.