© 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.

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-Schemas

GraphQL 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 Daten

  • Mutation – 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 vermieden

  • Type 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 ...

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


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.

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-Schemas

GraphQL 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 Daten

  • Mutation – 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 vermieden

  • Type 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 ...

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