Inventage Tech-RadarInventage Tech-Radar
Adopt

GraphQL ist in vielen unserer Projekte die Standardschnittstelle zwischen Backend und Client. Der vom Client gesteuerte Datenzugriff hat sich über Jahre bewährt und bleibt für uns die erste Wahl, wenn unterschiedliche Konsumenten dieselben Daten in verschiedener Tiefe brauchen.

Neu nutzen wir GraphQL auch als Durchsetzungspunkt für Regelwerk. Rollenbasierte Zugriffsregeln werden direkt auf der Schnittstelle ausgewertet, sodass ein Client nur die Felder und Datensätze sieht, für die er berechtigt ist. Auf Datenbankebene ergänzt jOOQ diesen Ansatz, indem es dieselben Filterkriterien typsicher in SQL-Queries einwebt.

Adopt

GraphQL ist eine Schnittstelle für den lesenden und schreibenden Datenzugriff über das HTTP-Protokoll. Es stellt eine Alternative zu REST dar und bietet gegenüber diesem den Vorteil, dass die Datentiefe und -breite bei einem Aufruf gesteuert werden kann.

Wir haben beim Einsatz von GraphQL einen grossen Gewinn an Flexibilität bei der Entwicklung feststellen können. Sei es durch eine weniger starke Kopplung zwischen Datenproduzent und -konsument oder bei der Nutzung der gleichen Daten von unterschiedlichen Datenkonsumenten. Daneben führt die Verwendung von GraphQL zu einer effizienten Datenverarbeitung und -transfer, da nur die benötigten Daten bereitgestellt und übertragen werden müssen.

Aufgrund unserer Erfahrungen bei mehrfachen Projekteinsätzen können wir die breite Verwendung von GraphQL stärkstens empfehlen. Zur Unterstützung setzen wir häufig Hasura ein. Es ist ein quelloffenes Werkzeug für die Bereitstellung einer GraphQL-Fassade vor bestehende Datenspeicher.