byteNative
Backend

GraphQL

Flexible APIs, die genau die Daten liefern, die der Client braucht.

Was ist GraphQL?

GraphQL ist eine Abfragesprache für Schnittstellen, mit der ein Client genau die Daten anfordert, die er gerade braucht, nicht mehr und nicht weniger. Im Zentrum steht ein typisiertes Schema, das den gesamten verfügbaren Datenbestand beschreibt und zugleich als Vertrag zwischen den Seiten dient. Das vermeidet sowohl überflüssige als auch fehlende Datenfelder und löst verschachtelte Beziehungen in einer einzigen Anfrage auf. Besonders wenn unterschiedliche Oberflächen auf dieselbe Datenbasis zugreifen, spielt es seine Stärken aus.

Mehr in der Dokumentation

Wofür wir es nutzen

Wir setzen GraphQL ein, wenn mehrere Clients wie Web und App ganz unterschiedliche Ausschnitte derselben Daten brauchen. Jede Oberfläche fragt sich ihren Schnitt selbst zusammen, ohne dass wir pro Ansicht eine eigene Endpunkt-Variante bauen. Das Schema dient dabei als gemeinsame, immer aktuelle Dokumentation für alle Beteiligten.

graphql
query GetProject {
  project(id: "42") {
    name
    members {
      name
      role
    }
  }
}
eine query holt genau die felder, die der client braucht

Gut zu wissen

Verschachtelte Abfragen verleiten schnell zum N+1-Problem, bei dem pro Listeneintrag eine eigene Datenbankabfrage feuert. Wir bündeln solche Zugriffe mit einem DataLoader, der die Anfragen einer Ebene sammelt und in einem einzigen Rutsch auflöst.

00Backend

Weitere Werkzeuge, mit denen wir im selben Bereich arbeiten.

Welche Technologie passt zu dir?

Das musst du nicht entscheiden, das ist unser Job. Erzähl uns einfach von deinem Vorhaben.