c't 8/2019
S. 184
Know-how
GraphQL
Aufmacherbild
Bild: Thorsten Hübner

Anders als der REST

GraphQL für Datenabfragen im Web verwenden

APIs im Web haben REST-Schnittstellen – das galt bis vor Kurzem als ausgemacht. Doch binnen weniger Jahre hat sich mit GraphQL ein starker Herausforderer etabliert. Was macht das Facebook-Projekt besser?

REST- und REST-ähnliche APIs eroberten die Herzen der Entwickler vor allem mit einer Eigenschaft: Sie sind einfach. Man kann sie leicht einrichten, verstehen und nutzen. REST stößt aber an seine Grenzen, wenn es um komplexe Aufgaben geht. Ein Beispiel: Um eine Liste eigener Tweets auf der Website einzubinden, braucht es meist nicht viel mehr als Text und Datum, gegebenenfalls ergänzt durch Links und Bilder. Das Twitter-REST-API liefert stattdessen ein komplexes Datengebilde, das jeden Tweet auf mehrere tausend Bytes aufbläht, indem es sämtliche Metadaten sowie das gesamte Nutzerprofil hinzufügt.

Das ist ein bisschen so, als würde man per SQL nach zwei Datenfeldern fragen und stattdessen den kompletten Datensatz zurückbekommen. Könnte der Client bestimmen, welche Daten er haben möchte, ließe sich die übertragene Datenmenge auf ein Zehntel reduzieren. Auch der umgekehrte Fall kommt in der Praxis häufig vor: Würde das Twitter-API die Benutzerdaten nicht zusammen mit dem Tweet ausliefern, müsste der Client diese Daten in einer zweiten Abfrage holen, wenn er sie benötigt.

Weitere Bilder

Anders als der REST (1 Bilder)