Zum Hauptinhalt

Was ist GraphQL? Eine Einführung

GraphQL ist eine Abfragesprache für APIs. APIs, die eine GraphQL-Schnittstelle für die Datenabfrage bereitstellen, heißen GraphQL-APIs. Es handelt sich um eine benutzerfreundliche Schnittstelle, über die mit einem einzigen API-Aufruf Daten aus verschiedenen Quellen abgerufen werden.

GraphQL wurde ursprünglich von Facebook entwickelt und diente dazu, die Herausforderungen in Verbindung mit den im Unternehmen vorhandenen REST APIs zu bewältigen (~2012). Seit 2015 steht die Abfragesprache als Open-Source-Produkt zur Verfügung und wird nun von der GraphQL Foundation verwaltet. Heute nutzen viele Unternehmen diese Spezifikation in verschiedenen Programmiersprachen. Sie wird von den meisten gängigen Programmiersprachen unterstützt.

GraphQL ist eine relativ neue, vielversprechende Technologie, die sich zunehmender Beliebtheit erfreut. Von React-Entwickler:innen wird sie besonders geschätzt.

GraphQL im Vergleich zu REST und SQL

Es gibt verschiedene Meinungen dazu, ob GraphQL oder REST die bessere Programmiermethode ist. GraphQL und REST sind beide gut geeignete Schnittstellen für APIs, jedoch nicht wirklich vergleichbar.

Ähnlich verhält es sich beim Vergleich von GraphQL und SQL. Auch hier handelt es sich in beiden Fällen um ausgezeichnete Möglichkeiten für die Datenabfrage, aber zu unterschiedlichen Zwecken. GraphQL ist aufgrund seiner JSON-Kompatibilität und Javascript-artigen Syntax am besten für das Web geeignet.

Die GraphQL-Landschaft umfasst ein vollständiges GraphQL-Ökosystem mit Tools, Kunden und Unternehmen.

GraphQL deckt folgende Herausforderungen ab:

1. Ermöglicht die Nutzung mehrerer Endpunkte

Kunden können Hunderte von APIs haben, und eine einzige Datenanfrage kann sich über 10–20 APIs und zahlreiche Anfragen erstrecken. GraphQL bietet einen einzigen Endpunkt für die Abfrage von Daten aus mehreren Datenquellen. So können Front-End-Entwickler:innen Daten einfach abrufen und schnell entwickeln. 


2. Verhindert überflüssige Datenabrufe

Herkömmliche APIs geben Daten in einem spezifischen Datenformat zurück. Dieses umfasst oft Felder, die Sie nicht benötigen. Mit GraphQL können Sie das JSON-Format der gewünschten Daten vorab definieren. Entsprechend erhalten Sie bei der Abfrage nur die benötigten Daten.

Ihre Anwendungen können dadurch schneller arbeiten – ein wichtiger Faktor für langsame Internetgeräte, wie zum Beispiel Mobiltelefone.


3. Einfache Versionierung

Bei herkömmlichen APIs gibt es Probleme mit Versionierung und Abwärtskompatibilität. Das liegt daran, dass die Versionen am Endpunkt selbst (wie zum Beispiel „/v1/“) oder in Headern weitergeleitet werden müssen. GraphQL dagegen gibt nur ausdrücklich angeforderte Daten zurück. Daher können neue Funktionen einfach hinzugefügt werden.


4. Einfacher Zugriff auf (relationale) Daten

Beim herkömmlichen Abrufen relationaler Daten aus einer Datenquelle werden SQL-Abfragen geschrieben und Daten aus verschiedenen Tabellen verknüpft. Bei verschachtelten Daten mit Beziehungen zwischen über- und untergeordneten Elementen ist dies schwierig. GraphQL vereinfacht die Datenabfrage mithilfe von Webstandards. So sind für den Zugriff auf die Daten keine SQL-Kenntnisse notwendig. 


5. Integration

Über die benutzerfreundliche Schnittstelle von GraphQL können Sie mit einem einzigen API-Aufruf Daten aus verschiedenen Quellen abrufen. Für den Zugriff auf Daten aus verschiedenen Quellen ist jedoch zuverlässige Konnektivität und skalierbare Performance erforderlich. MuleSoft kann als Integrationsschicht zwischen Ihren Systemen und der bereitgestellten GraphQL-API dienen.

Alternativ können Sie einen Datengraph auf Ihrem Application Network aufbauen und als GraphQL-Endpunkt verfügbar machen. Dieser zentrale Endpunkt wird mit einem GUI-Builder erstellt, über den APIs in einem Datengraph basierend auf den gegenseitigen Beziehungen miteinander verknüpft werden können. Nutzer:innen können diesen zentralen Endpunkt dann mit einem visuellen Abfrage-Generator abfragen und dabei die für ihr Projekt benötigten Felder auswählen. 

Über API Federation können Unternehmen Datenbeziehungen zwischen APIs in ihrem Application Network definieren und automatisch einen GraphQL-Endpunkt für den Zugriff auf die Daten generieren. Auf diese Weise können Entwickler:innen schnell eine alternative Methode für den Zugriff auf Daten aus dem Application Network erhalten.