© Liashko/Shutterstock.com
Entwickler Magazin
Vorteile und Nachteile von GraphQL

GraphQL oder REST: Die Gretchenfrage

REST ist eine der beliebtesten Optionen, um Client-Server-Architekturen miteinander zu verbinden, doch GraphQL stellt eine ernstzunehmende Alternative dazu dar. Das gilt aber nicht für alle Anwendungsfälle und jeden Kontext. Auch GraphQL hat seine Vor- und Nachteile.

Robin Wieruch


Wenn es um eine herkömmliche Client-Server-Architektur geht, ist REST [1] eine der beliebtesten Möglichkeiten, um beide Welten miteinander zu verbinden. Im traditionellen REST geht es darum, Ressourcen mittels URLs zum Schreiben und Lesen anzubieten. So können Sie eine Ressource mit einer HTTP-GET-Methode lesen, eine Ressource mit einer HTTP-POST-Methode erstellen und sie mit HTTP-PUT- und DELETE-Methode aktualisieren und löschen. Diese Methode werden auch CRUD-Operationen (Create, Read, Update, Delete) genannt. Eine Ressource kann alles von Autoren über Artikel bis zu Benutzern sein. Das Format zum Übertragen dieser Daten ist bei Verwendung von REST nicht vorgegeben, meistens wird jedoch das JSON-Format dafür verwendet (Listing 1). Am Ende ermöglicht REST es Anwendungen, miteinander zu kommunizieren, indem es auf traditionellem HTTP mit URLs und HTTP-Methoden aufbaut, ohne eine eigene Spezifikation dafür zu implementieren.

Listing 1: REST-Anfrage und Antwort// eine REST-Anfrage auf https://api.domain.com/authors/7 mit HTTP GET // die Antwort in JSON{ "id": "7", "name": "Robin Wieruch", "avatarUrl": "https://domain.de/autoren/7", "firstName": "Robin", "lastName": "Wieruch"}

Nachdem REST lange Zeit den Status quo darstellte, hat sich in den letzten Jahren eine alternative Technologie namens GraphQL hervorgetan, die von Facebook entwickelt wurde. Die folgenden Abschnitte geben Ihnen eine Einführung in GraphQL, die Vor- und Nachteile und Alternativen dazu.

Was ist GraphQL?

Bevor wir uns den Vor- und Nachteilen von GraphQL zuwenden, wollen wir zunächst die folgende Frage beantworten: Was ist GraphQL? GraphQL ist eine Open-Source-Spezifikation für eine Abfragesprache (QL, Query Language), die von Facebook im Jahr 2015 herausgebracht wurde. Bevor GraphQL der Öffentlichkeit zur Verfügung gestellt wurde, hat Facebook es intern bereits seit 2012 für seine mobilen Anwendungen verwendet.

Warum eigentlich mobile Anwendungen? GraphQL wurde als Alternative zur herkömmlichen REST-Architektur entwickelt, weil es der Clientapplikation ermöglicht, nur die gewünschten Daten anzufordern – nicht mehr oder weniger. Die Clientapplikation entscheidet, welche Daten sie braucht. Wenn hier eine REST-konforme Architektur verwendet werden würde, wäre es ziemlich schwierig, diese Anforderung zu erfüllen, da dann das Backend definiert, was mit jeder Ressource auf jedem URL verfügbar ist. Es ist nicht das Frontend, das nach einer Auswahl von Daten fragt. Daher müsste das Frontend imme...

Entwickler Magazin
Vorteile und Nachteile von GraphQL

GraphQL oder REST: Die Gretchenfrage

REST ist eine der beliebtesten Optionen, um Client-Server-Architekturen miteinander zu verbinden, doch GraphQL stellt eine ernstzunehmende Alternative dazu dar. Das gilt aber nicht für alle Anwendungsfälle und jeden Kontext. Auch GraphQL hat seine Vor- und Nachteile.

Robin Wieruch


Wenn es um eine herkömmliche Client-Server-Architektur geht, ist REST [1] eine der beliebtesten Möglichkeiten, um beide Welten miteinander zu verbinden. Im traditionellen REST geht es darum, Ressourcen mittels URLs zum Schreiben und Lesen anzubieten. So können Sie eine Ressource mit einer HTTP-GET-Methode lesen, eine Ressource mit einer HTTP-POST-Methode erstellen und sie mit HTTP-PUT- und DELETE-Methode aktualisieren und löschen. Diese Methode werden auch CRUD-Operationen (Create, Read, Update, Delete) genannt. Eine Ressource kann alles von Autoren über Artikel bis zu Benutzern sein. Das Format zum Übertragen dieser Daten ist bei Verwendung von REST nicht vorgegeben, meistens wird jedoch das JSON-Format dafür verwendet (Listing 1). Am Ende ermöglicht REST es Anwendungen, miteinander zu kommunizieren, indem es auf traditionellem HTTP mit URLs und HTTP-Methoden aufbaut, ohne eine eigene Spezifikation dafür zu implementieren.

Listing 1: REST-Anfrage und Antwort// eine REST-Anfrage auf https://api.domain.com/authors/7 mit HTTP GET // die Antwort in JSON{ "id": "7", "name": "Robin Wieruch", "avatarUrl": "https://domain.de/autoren/7", "firstName": "Robin", "lastName": "Wieruch"}

Nachdem REST lange Zeit den Status quo darstellte, hat sich in den letzten Jahren eine alternative Technologie namens GraphQL hervorgetan, die von Facebook entwickelt wurde. Die folgenden Abschnitte geben Ihnen eine Einführung in GraphQL, die Vor- und Nachteile und Alternativen dazu.

Was ist GraphQL?

Bevor wir uns den Vor- und Nachteilen von GraphQL zuwenden, wollen wir zunächst die folgende Frage beantworten: Was ist GraphQL? GraphQL ist eine Open-Source-Spezifikation für eine Abfragesprache (QL, Query Language), die von Facebook im Jahr 2015 herausgebracht wurde. Bevor GraphQL der Öffentlichkeit zur Verfügung gestellt wurde, hat Facebook es intern bereits seit 2012 für seine mobilen Anwendungen verwendet.

Warum eigentlich mobile Anwendungen? GraphQL wurde als Alternative zur herkömmlichen REST-Architektur entwickelt, weil es der Clientapplikation ermöglicht, nur die gewünschten Daten anzufordern – nicht mehr oder weniger. Die Clientapplikation entscheidet, welche Daten sie braucht. Wenn hier eine REST-konforme Architektur verwendet werden würde, wäre es ziemlich schwierig, diese Anforderung zu erfüllen, da dann das Backend definiert, was mit jeder Ressource auf jedem URL verfügbar ist. Es ist nicht das Frontend, das nach einer Auswahl von Daten fragt. Daher müsste das Frontend imme...

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