GraphQL Demo (7/8) – Ratelimiting

In klassischen REST Services ist Ratelimiting ein bekanntes Problem mit bekannten Lösungen. Hier hat jeder Endpoint und jede Aktion, die auf diesem Endpoint ausgeführt werden kann, bestimmte Kosten. Wird einer dieser Endpoints aufgerufen, werden die Kosten von einem Konto des Clients abgezogen. In REST ist das eine sehr einfache Methode, da die Kosten, die dem […]

GraphQL Demo (6/8) – Monitoring

Jeder, der eine Serveranwendung betreibt, möchte diese gerne überwachen und Reports über Zustand und Anfragen bekommen. So geht es auch uns bei unserer Chat-App, die mit Apollo Server läuft.  Wer für seine GraphQL-Anwendung Apollo Server nutzt, kann damit ganz einfach über die Apollo Engine seinen Server überwachen. So können Performance, Cache Hits, Fehler, Warnungen und Auflistungen darüber welche Daten wie oft […]

GraphQL Demo (5/8) – Authorization

Nach einer längeren Pause geht unsere Blogserie zum Thema GraphQL nun weiter. Viel Spaß beim lesen! Das Thema Autorisierung ist unter GraphQL von besonderem Interesse. In klassischen REST APIs haben wir verschiedene Ressourcen, auf denen bestimmte Aktionen definiert sind. Nehmen wir als Beispiel eine Kalender Anwendung. Ein Endpoint unter REST wäre z.B. example.com/events. Mit POST werden neue erstellt, […]

GraphQL Demo (4/8) – Response Caching

Die Apollo Engine stellt eine einfache Möglichkeit zum Response Caching zur Verfügung. Dabei können ganze GraphQL Query Antworten oder auch nur einzelne Felder gecached werden.  Warum Caching und was ist das Besondere dabei mit GraphQL?  Caching ist bei GraphQL etwas schwieriger als bei REST-Schnittstellen, da nicht wie beim HTTP oder Netzwerk Caching, Daten zum Beispiel über die URL gecached werden können. Dennoch ist Caching bei Datenbankanwendung, wie in […]

GraphQL Demo (3/8) – Dataloader und Batching

Der Dataloader stellt Batching und Caching zur Verfügung. Entwickelt wurde er von Facebook. Wir haben ihn für das Batching eingesetzt, so werden nun verschiedene Anfragen, die mit den Chatnachrichten laden, zu einer Anfrage zusammenführt, die dann an die Datenbank gestellt wird. Die geladenen Daten werden im Dataloader gecacht und können später ohne Datenbankzugriff geladen werden. […]

GraphQL Demo (2/8) – GraphQL vs REST

GraphQL ist wie REST vor allem für die Schnittstellen-Definition da. Doch wie schlägt sich GraphQL im Vergleich mit REST? Die Basics Beide Standards können über eine Vielzahl an Protokollen genutzt werden. Jedoch werden REST und GraphQL hauptsächlich über HTTP genutzt. Da HTTP weit verbreitet ist, vergleichen wir im Folgenden zunächst die Umsetzung mit HTTP. GraphQL […]

GraphQL Demo (1/8) – Einführung in GraphQL und unsere Demo-Anwendung

Zunächst kurz zu uns: Wir, Phillip Fehrmann und Manuel Styrsky sind beide als Werkstudenten in der Software Entwicklung bei Opitz Consulting Deutschland GmbH beschäftigt und haben uns um Zuge dessen in das Thema GraphQL eingearbeitet und dabei auch ein Backend für eine kleine Chat-App auf Basis von GraphQL entwickelt. In dieser Blogserie wollen wir auf […]