Zur Startseite
Open Source GraphQL Plugin für CakePHP
Daniel Melchior
von Daniel Melchior

Open Source GraphQL Plugin für CakePHP

Im Rahmen des CakeFest 2022 präsentierte ich meine Integration von GraphQL als CakePHP Plugin. Noch während meines Vortrags wurde verkündet, dass wir dieses Plugin ab sofort als Open Source der Community zur Verfügung stellen.

GraphQL

GraphQL wurde von 2012 von Facebook entwickelt und ist eine Abfragesprache über die ein Client (bspw. eine App) mit einem Server kommunizieren kann. GraphQL wurde entwickelt, um bei größeren Datenbeständen mehr Effizienz zu bieten als eine REST-API. Dies wird dadurch erreicht, dass bei jeder Anfrage vom Client angegeben werden kann, welche Felder des Datensatzes konkret benötigt werden, sodass nur die nötigen Daten vom Server zusammengestellt und übertragen werden müssen. Weiterhin können mehrere Anfragen gebündelt versendet werden.

CakePHP und GraphQL im Einsatz

Wir nutzen seit vielen Jahren erfolgreich CakePHP und erstellen damit verschiedenste Anwendungen. Im Rahmen eines großen Projektes wurden umfangreiche Datenabfragen notwendig. Um zeitgleich Typensicherheit herzustellen haben wir uns dazu entschlossen ein Plugin zu schreiben, das es ermöglicht GraphQL in CakePHP-Projekten zu verwenden.
So wurde es leicht möglich, die Datenstrukturen im Backend zu definieren und automatisiert im Frontend bereitzustellen. Bei jeder Abfrage im Client steht bereits bei der Programmierung genau fest, welche Felder mit welchen Typen von Server zurückgesendet werden.
Werden später weitere Felder benötigt, kann im Client die Abfrage erweitert werden. Werden andersherum bestimmte Felder nicht mehr benötigt, können diese einfach ausgelassen werden.

Das Plugin steht ab sofort auf GitHub zur Verfügung.