© best_vector/Shutterstock.com
Windows Developer
GraphQL in Serverless-Architekturen integrieren

Hoch optimierte APIs

Mit seinen drei Jahren auf dem Markt stellt GraphQL eine gereifte und etablierte Alternative zu REST dar und sollte bei Erstellung oder Weiterentwicklung eines API in Betracht gezogen werden. Verschiedene Anwendungen wie Facebook, Instagram und XING verwenden die REST-Alternative bereits erfolgreich [1]. Grund genug, einen Einblick zu geben, wie GraphQL mit wenig Aufwand in moderne Serverless-Architekturen integriert werden kann. Dazu wird im Zusammenspiel von GraphQL mit AWS Lambda eine hoch skalierbare Implementierung vorgestellt, die auf verschiedene Architekturen und Frameworks adaptiert werden kann.

Michael Dähnert


Wie oft hat man sich als Frontend-Entwickler darüber geärgert, dass ein REST Call nicht alle benötigten Daten geliefert hat. Auch als Backend-Entwickler wurde man jedes Mal wieder von Kollegen darum gebeten, eine weitere Property zu einer Response hinzuzufügen, wenn diese fehlte. Zum Glück gehören diese Probleme dank GraphQL der Vergangenheit an. Während REST hier fest vorgegebene Strukturen für die Rückgabe eines Aufrufs definiert, liefert GraphQL nur die Daten, die im Frontend gewünscht sind. Das Vermeiden von sogenanntem Over- und Underfetching wird erreicht, da mit dem Aufruf der Schnittstelle nicht nur die gewünschte auszuführende Methode genannt wird, sondern auch die gewünschten Rückgabestrukturen.

Moderne Entwicklungen in Microservices- und Serverless-Architekturen machen es möglich, hoch skalierbare Systeme zu erstellen. Kombiniert man diesen Vorteil mit GraphQL für netzlastoptimierte APIs, erhält man hoch optimierte, datengetriebene Systeme. Der Artikel gibt einen ersten Einblick in GraphQL. Dabei wird besonders auf das Zusammenspiel mit AWS Lambda als ein Vertreter der Serverless-Architekturen eingegangen.

Wichtige Begriffe des GraphQL-SchemasGraphQL liefert eine Reihe von Begriffen, die in dessen Schemadefinition verwendet werden. Einige davon werden im Artikel behandelt. Für andere sei auf die GraphQL-Dokumentation verwiesen [2]:Query – lesende Zugriffe auf DatenMutation – schreibende Zugriffe auf Daten; der Aufbau einer Mutation entspricht innerhalb des Schemas dem einer Query, beginnt jedoch mit dem Wort „mutation“Inline Fragments – Objektbäume können sauber strukturiert und beispielsweise in anderen Queries wiederverwendet werden; Duplicate Code wird so vermiedenType und InputType – Objekte und ihre Properties sind im Schema fest definiert. Diese Info ist dem Client und dem Server bekannt, wodurch eine Validierung direkt bei Start des Servers und Ausführung eines Requests verwendet werden kannScalar – Objekte wie Datumswerte (DateTime) können zu den GraphQL-nativen Elementen wie String, Int und Boolean ergänzt und direkt als Datentyp verwendet werdenArgument/Variable – Bei Übergabe von Serveranfragen können Argumente direkt in die Anfrage geschrieben oder als separate Variablen übergeben werdenPflichtfelder – werden innerhalb des Schemas mittels nachgestelltem „!“ beschriebenDirektive – gewünschte Rückgabestrukturen können durch die konditionalen Operatoren if und skip gefiltert werden

Ein erster Einblick

Wie genau sieht nun der Aufruf eines...

Windows Developer
GraphQL in Serverless-Architekturen integrieren

Hoch optimierte APIs

Mit seinen drei Jahren auf dem Markt stellt GraphQL eine gereifte und etablierte Alternative zu REST dar und sollte bei Erstellung oder Weiterentwicklung eines API in Betracht gezogen werden. Verschiedene Anwendungen wie Facebook, Instagram und XING verwenden die REST-Alternative bereits erfolgreich [1]. Grund genug, einen Einblick zu geben, wie GraphQL mit wenig Aufwand in moderne Serverless-Architekturen integriert werden kann. Dazu wird im Zusammenspiel von GraphQL mit AWS Lambda eine hoch skalierbare Implementierung vorgestellt, die auf verschiedene Architekturen und Frameworks adaptiert werden kann.

Michael Dähnert


Wie oft hat man sich als Frontend-Entwickler darüber geärgert, dass ein REST Call nicht alle benötigten Daten geliefert hat. Auch als Backend-Entwickler wurde man jedes Mal wieder von Kollegen darum gebeten, eine weitere Property zu einer Response hinzuzufügen, wenn diese fehlte. Zum Glück gehören diese Probleme dank GraphQL der Vergangenheit an. Während REST hier fest vorgegebene Strukturen für die Rückgabe eines Aufrufs definiert, liefert GraphQL nur die Daten, die im Frontend gewünscht sind. Das Vermeiden von sogenanntem Over- und Underfetching wird erreicht, da mit dem Aufruf der Schnittstelle nicht nur die gewünschte auszuführende Methode genannt wird, sondern auch die gewünschten Rückgabestrukturen.

Moderne Entwicklungen in Microservices- und Serverless-Architekturen machen es möglich, hoch skalierbare Systeme zu erstellen. Kombiniert man diesen Vorteil mit GraphQL für netzlastoptimierte APIs, erhält man hoch optimierte, datengetriebene Systeme. Der Artikel gibt einen ersten Einblick in GraphQL. Dabei wird besonders auf das Zusammenspiel mit AWS Lambda als ein Vertreter der Serverless-Architekturen eingegangen.

Wichtige Begriffe des GraphQL-SchemasGraphQL liefert eine Reihe von Begriffen, die in dessen Schemadefinition verwendet werden. Einige davon werden im Artikel behandelt. Für andere sei auf die GraphQL-Dokumentation verwiesen [2]:Query – lesende Zugriffe auf DatenMutation – schreibende Zugriffe auf Daten; der Aufbau einer Mutation entspricht innerhalb des Schemas dem einer Query, beginnt jedoch mit dem Wort „mutation“Inline Fragments – Objektbäume können sauber strukturiert und beispielsweise in anderen Queries wiederverwendet werden; Duplicate Code wird so vermiedenType und InputType – Objekte und ihre Properties sind im Schema fest definiert. Diese Info ist dem Client und dem Server bekannt, wodurch eine Validierung direkt bei Start des Servers und Ausführung eines Requests verwendet werden kannScalar – Objekte wie Datumswerte (DateTime) können zu den GraphQL-nativen Elementen wie String, Int und Boolean ergänzt und direkt als Datentyp verwendet werdenArgument/Variable – Bei Übergabe von Serveranfragen können Argumente direkt in die Anfrage geschrieben oder als separate Variablen übergeben werdenPflichtfelder – werden innerhalb des Schemas mittels nachgestelltem „!“ beschriebenDirektive – gewünschte Rückgabestrukturen können durch die konditionalen Operatoren if und skip gefiltert werden

Ein erster Einblick

Wie genau sieht nun der Aufruf eines...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang