Davies Meyer – Startseite
    Tech3 Min. Lesezeit

    GraphQL

    GraphQL ist eine Abfragesprache und ein Ausführungsmodell für APIs. Ein Schema beschreibt die verfügbaren Datentypen, Felder und Operationen. Clients können daraus die benötigten Felder anfordern. GraphQL ist keine Datenbank; die angefragten Informationen können aus unterschiedlichen zugrunde liegenden Systemen kommen.

    GraphQL im Detail

    Der Ansatz kann helfen, wenn verschiedene Oberflächen unterschiedliche Ausschnitte derselben Daten benötigen. Eine Produktkarte fragt beispielsweise Titel und Bild an, eine Detailansicht zusätzlich Eigenschaften. Welche Felder angeboten werden und wer sie lesen darf, muss die Anwendung festlegen. Eine frei formulierte Abfrage erlaubt keinen beliebigen Zugriff auf interne Daten.

    Die gewünschte Antwortstruktur ist nicht mit geringem Verarbeitungsaufwand gleichzusetzen. Eine einzige Anfrage kann im Hintergrund viele Datenbank- oder Serviceaufrufe auslösen. Verschachtelung und große Ergebnismengen müssen deshalb begrenzt und unter realistischen Bedingungen geprüft werden. Weniger übertragene Felder garantieren keine schnellere Seite.

    Ein Schema unterstützt die Prüfung von Feldnamen und Typen. Es ersetzt weder Berechtigungsprüfungen noch fachliche Regeln. Eine zulässige Zahl im Schema kann für den konkreten Vorgang trotzdem falsch sein. Auch Fehler, unvollständige Antworten und Änderungen am Schema brauchen eine verständliche Behandlung.

    Wähle GraphQL, wenn die benötigten Datenzugriffe und die Fähigkeiten des Teams dafür sprechen. Vergleiche den gesamten Ablauf einschließlich Betrieb, Zwischenspeicherung und Fehlerklärung mit Alternativen. Die Bezeichnung allein ist kein Qualitätsmerkmal und kein Grund, eine funktionierende Schnittstelle zu ersetzen.

    Beispiele

    Hypothetisches Anwendungsbeispiel

    Ein Produktportal verwendet dieselben Daten für eine kompakte Ergebnisliste und eine Detailansicht. Beide fragen unterschiedliche Felder aus dem Schema ab. Ein Lasttest zeigt, dass eine verschachtelte Zubehörliste viele Einzelabfragen auslöst. Das Team überarbeitet die Datenbeschaffung und begrenzt die Ergebnisgröße, bevor die Funktion veröffentlicht wird.

    Wichtige Punkte

    • Das Schema beschreibt angebotene Daten und Operationen.
    • GraphQL ist von einer bestimmten Datenbank unabhängig.
    • Eine Anfrage kann viele Arbeitsschritte im Hintergrund auslösen.
    • Typprüfung ersetzt keine Berechtigungs- und Geschäftsregeln.

    Anwendung im Marketing-Alltag

    Definiere die benötigten Ansichten und Daten. Prüfe Berechtigungen, große Abfragen, Fehler und Änderungen am Schema, bevor du den Architekturansatz festlegst.

    Sinnvolle Messgrößen

    Antwort- und Verarbeitungsaufwand

    Übertragene Daten und Arbeit im Hintergrund gemeinsam messen.

    Verhalten unter Last

    Realistische Mengen, Verschachtelung und gleichzeitige Zugriffe prüfen.

    Änderbarkeit

    Auswirkungen von Schemaänderungen auf die verwendenden Oberflächen untersuchen.

    Häufige Fehler

    • Eine einzelne API-Anfrage mit einer einzelnen Datenbankabfrage gleichsetzen.
    • Ein gültiges Schema als vollständige Sicherheitsprüfung verstehen.
    • Aus frei wählbaren Feldern automatisch bessere Ladezeiten oder Conversions ableiten.

    Quellen und Einordnung

    • GraphQL: Introduction

      Erklärt GraphQL als Abfragesprache und serverseitige Ausführung für APIs, unabhängig von einer bestimmten Datenbank.

    • GraphQL: Schemas and Types

      Beschreibt das Typsystem und die vom Schema angebotenen Felder und Operationen.

    • GraphQL: Security

      Erläutert unter anderem Abfragekomplexität, Mengenbegrenzungen, Validierung und den Umgang mit aufwendigen verschachtelten Abfragen.

    Häufige Fragen zu GraphQL

    Nein. Antwortumfang, Datenbeschaffung, Zwischenspeicherung und Umsetzung beeinflussen die Geschwindigkeit. Vergleiche die tatsächlich benötigten Abläufe.

    Begriffsempfehlungen werden geladen…

    Alle Begriffe