REST, GraphQL und gRPC im Vergleich

Von: Thomas Bayer
Datum: 31. Januar 2021

Über REST, GraphQL oder gRPC können Client und Server miteinander kommunizieren. Für den Transport von Nachrichten verwenden alle drei das HTTP oder HTTP/2 Protokoll. Abgesehen von dieser Gemeinsamkeit, sind die drei Alternativen grundverschieden. Dieser Artikel vergleicht die drei „Protokolle“ und hilft bei der Auswahl der passenden Technologie.

Dieser Artikel gliedert sich in mehrere Teile, die jeweils einen Aspekt beschreiben:

In diesem ersten Teil des Artikels werden REST, GraphQL und gRPC kurz beschrieben.

1. Representational State Transfer, der Platzhirsch

REST ist mit Abstand das beliebteste der drei „Protokolle“. Genaugenommen ist REST kein Protokoll, sondern ein Architekturstil, mit dem ganze Anwendungen gestaltet werden können. Bei REST wurde keine neue Technologie entwickelt, sondern beschrieben, wie Anforderungen mit dem HTTP Protokoll und den Prinzipien des Webs umgesetzt werden können. Beispielsweise wird das Abfragen, Anlegen, Ändern und Löschen von Daten auf die HTTP Methoden GET, POST, PUT und DELETE abgebildet. Diese Methoden werden direkt auf den Geschäftsobjekten, die als HTTP Ressourcen über URIs adressierbar sind, angewandt. Mit Hypermedia können die Ressourcen verlinkt werden.

2. GraphQL, der Herausforderer

GraphQL ist eine Abfragesprache für APIs von Facebook. Ein Client kann mit seiner Abfrage genau spezifizieren, was er als Antwort erwartet und so zusätzliche Aufrufe vermeiden. Die eingesparten Aufrufe optimieren das Antwortverhalten bei langsamen Verbindungen und sind deshalb besonders für mobile Anwendungen wie Apps interessant. Anders als der Name Query Language suggeriert, sind Funktionsaufrufe oder die Manipulation von Daten ebenfalls möglich.

3. Google RPC

gRPC ist eine rekursive Abkürzung für "gRPC Remote Procedure Calls". Wie aus dem Namen bereits ersichtlich handelt es sich um eine RPC Technologie, bei der Funktionen über das Netzwerk aufgerufen werden können. Die RPC Variante von Google ist moderner und leichtgewichtiger als ihre Vorgänger CORBA, Web Services oder SAP RFCs.

Im nächsten Teil dieses Artikels werden die Ansätze und Ideen hinter REST, GraphQL und gRPC erläutert.

Teil 2: Konzepte und Architektur