Definitionen durchsuchen :
Definition

GraphQL

GraphQL ist eine Abfragesprache, die beschreibt, wie ein Client Informationen über eine Programmierschnittstelle (API) abfragen soll. Im weitesten Sinne ist GraphQL eine Syntax, die Entwickler verwenden können, um bestimmte Daten abzufragen und diese Daten aus verschiedenen Quellen zurückzugeben. Sobald der Client die Struktur der benötigten Daten definiert, wird genau dieselbe Struktur der Daten vom Server zurückgegeben.

Echtzeit-Updates von Daten können durch die Open-Source-Fähigkeiten von GraphQL zum Lesen, Verändern und Überwachen durchgeführt werden. GraphQL-Server wurden für die Verwendung mit gängigen Programmiersprachen wie JavaScript, Python, Ruby, C#, Go und PHP entwickelt. Das Ziel von GraphQL ist es, Entwicklern eine umfassende Sicht auf die in einer API gespeicherten Daten zu bieten, die Möglichkeit, nur relevante Daten zu empfangen und eine Architektur, die es einfacher macht, APIs zu skalieren und im Laufe der Zeit anzupassen.

Um APIs mit GraphQL zu erstellen, sind ein GraphQL-Server, der die API hostet, und ein Client, der eine Verbindung zu einem Endpunkt herstellt, erforderlich. GraphQL-APIs bestehen aus drei Merkmalen: Schema, Abfrage und Resolver. Deren Eigenschaft sind:

  1. Schema – ist das Typsystem, das zur Definition einer API innerhalb einer Serverimplementierung verwendet wird. Alle Fähigkeiten und Funktionalitäten werden innerhalb des Schemas definiert.
  2. Abfrage – Die Abfrage oder Anweisung zur Ausgabe, die gestellt wird. Neue Abfragen werden mit einem Schlüsselwort deklariert und können verschachtelte Felder, Arrays und Argumente unterstützen.
  3. Resolver – Dieser teilt GraphQL mit, wie und wo Daten in Bezug auf die angegebenen Felder gefunden werden können. Ohne dies wüsste der GraphQL-Server nicht, wie er eine Abfrage behandeln soll.

GraphQL hilft bei der Erstellung flexibler APIs, die an sich ändernde Anforderungen angepasst werden können und sorgt für Einheitlichkeit über Anwendungen hinweg. Wenn Anwendungen angepasst werden müssen, um neue Funktionen hinzuzufügen oder ungenutzte zu entfernen, können die entsprechenden Felder in der Abfrage einfach angepasst und mit minimalem Aufwand und Unterbrechung ausgeführt werden.

GraphQL
Abbildung 1: Die Schritte einer GraphQL-Abfrage.

Die Vorteile von GraphQL sind:

  • Organisiert den Code hierarchisch, um die Komplexität zu reduzieren und Beziehungen zwischen Objekten anzuzeigen.
  • Hat stark typisierte Felder, die Entwickler vor der Ausführung einer Abfrage auf Fehlermeldungen hinweisen.
  • Liefert vorhersehbare Ergebnisse aus komplexen Abfragen.
  • Gibt nur relevante, gewünschte Daten aus.
  • Ermöglicht eine schnellere und stabilere Ausführung von Anwendungen.
  • Nutzt vorhandenen Code und Datenquellen, wodurch redundante Arbeit vermieden wird.
  • Ist versionsfrei, um Weiterentwicklungen und zukünftige Änderungen zu unterstützen.

GraphQL versus REST

Facebook entwickelte GraphQL, um die Endpunkte von REST zu vereinfachen. Anstatt mehrere Endpunkte mit kleinen Mengen unzusammenhängender Daten zu haben, hat GraphQL einen einzigen Endpunkt, der komplexe Abfragen eingibt und nur relevante Informationen ausgibt.

Unter Verwendung eines metaphorischen Beispiels lassen sich beiden wie folgt vergleichen: REST führt APIs als eine sequenzielle To-Do-Liste aus. Erst werden Botengänge gemacht, dann die Post abgeholt und dann ein Termin beim Zahnarzt vereinbart – alle Komponenten sind getrennt. Bei GraphQL gibt es einen zusätzlichen Schritt, bevor die Aufgaben erledigt werden, in dem das gewünschte Ergebnis angefordert wird (in diesem Fall ist das gewünschte Ergebnis, dass die Besorgungen erledigt sind, die Post abgeholt und der Termin vereinbart wurde). Dann springt GraphQL ein und erledigt alle Aufgaben gleichzeitig und gibt nur das Ergebnis zurück, ähnlich wie ein persönlicher Assistent.

REST ist zum Standardwerkzeug für die Entwicklung von Web-APIs geworden, hat sich aber als zu unflexibel erwiesen, um mit schnellen Aktualisierungen Schritt zu halten und ist anfällig für Probleme mit Over und Under Fetching. GraphQL bietet eine Lösung für diese Ineffizienzen sowie eine einfachere, benutzerfreundliche Schnittstelle.

Diese Definition wurde zuletzt im Februar 2021 aktualisiert
ComputerWeekly.de
Close