Sebastian Springer MaibornWolff

„Der große Vorteil von GraphQL gegenüber REST ist, dass Sie die Struktur der Antwort bereits bei der Erzeugung der Anfrage bestimmen können.“

Das öffentliche GitHub API ist das populärste Beispiel für eine GraphQL-Schnittstelle. Auch wenn GraphQL noch sehr weit davon entfernt ist, REST als führenden Standard für Webschnittstellen abzulösen, gewinnt es stetig an Beliebtheit.

GraphQL ist im Kern lediglich eine Abfragesprache, mit der Sie auf einem Client eine Anfrage nach bestimmten Informationen formulieren und dabei gleichzeitig das Format der Antwort des Servers vorgeben können. Der große Vorteil gegenüber REST ist, dass Sie mehrere Ressourcen gleichzeitig anfragen können und nur die Informationen erhalten, die Sie wirklich benötigen. Die Datenstrukturen werden in GraphQL in einem eigenen Typsystem beschrieben. Mit entsprechenden Werkzeugen können Sie daraus Typdefinitionen in TypeScript oder Flow erzeugen, die Sie auch clientseitig nutzen können. In einer Client-Server-Applikation kommen in der Regel auf beiden Seiten Bibliotheken zum Einsatz, die die meiste Arbeit übernehmen. Eine der populärsten Clientbibliotheken ist der Apollo Client. Diese Bibliothek ist zwar unabhängig von einem bestimmten JavaScript-Framework, wird jedoch sehr häufig in Kombination mit React eingesetzt. In diesem Artikel erhalten Sie einen Einblick in die Welt von GraphQL und sehen, wie Sie einen GraphQL-Server auf Basis von Node.js entwickeln und ihn mit einer React-Applikation mithilfe von Apollo Client verbinden können.

Eine kurze Einführung in GraphQL

Die GraphQL-Spezifikation wurde ursprünglich von Facebook entwickelt. Initial wurde sie unter der viel kritisierten BSD-Lizenz mit Patenterweiterung lizenziert. Wie die meisten anderen Open-Source-Werkzeuge, die von Facebook entwickelt werden, wurde sowohl die Spezifikation als auch die JavaScript-Referenzimplementierung unter eine andere Lizenz gestellt. Die Spezifikation ist mittlerweile OWFa-Lizenz, die Referenzimplementierung unter der MIT-Lizenz verfügbar. GraphQL kann damit bedenkenlos im Unternehmenskontext eingesetzt werden. Da GraphQL im Kern lediglich eine Spezifikation ist, ist die Abfragesprache unabhängig von einer Programmiersprache und kann in JavaScript, Java oder auch Python eingesetzt werden. Für die meisten gängigen Programmiersprachen existieren mittlerweile sowohl Sever- als auch Clientimplementierungen.

Bei der Implementierung der Serverseite sollten Sie beachten, dass es sich bei GraphQL nicht um ein Framework, sondern lediglich eine Schicht in Ihrer Applikation handelt. Aus diesem Grund ist es auch möglich, GraphQL mit überschaubarem Aufwand in bestehende Applikationen zu integrieren. Ihre Businesslogik bleibt bestehen, nur die Kommunikationsschicht zum Client muss angepasst werden. Für das Verständnis von GraphQL ist es hilfreich, einige Begriffe und Konzepte zu verstehen, die im Folgenden kurz zusammengefasst werden. GraphQL besteht insgesamt aus drei Bestandteilen: Queries, einem Schema und Resolvern.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 5.19 - "Strategisches Design"

Alle Infos zum Heft
579886922GraphQL-Server auf Basis von React entwickeln
X
- Gib Deinen Standort ein -
- or -