In der heutigen digitalen Welt ist die Kommunikation über das Internet alltäglich geworden, nicht nur zwischen Menschen, sondern auch zwischen Softwareprogrammen. Wenn Sie Apps wie Facebook oder Instagram nutzen oder das Wetter auf Ihrem Handy prüfen, interagieren Sie unwissentlich mit Web Services. Eine beliebte Art, wie diese Apps miteinander kommunizieren, ist REST, Representational State Transfer.

Was ist REST?

REST ist ein Architekturstil für verteilte Hypermedia-Systeme, im Jahr 2000 von Roy Fielding in seiner Dissertation “Architectural Styles and the Design of Network-based Software Architectures” (Kapitel 5) definiert. REST ist keine Programmiersprache, keine Software und kein Tool, sondern ein Satz von Constraints (Client-Server, Stateless, Cacheable, Uniform Interface, Layered System, Code on Demand), die zusammen genommen die Eigenschaften des Webs prägen.

Wie funktioniert REST?

Stellen Sie sich vor, Sie bestellen Essen über eine App auf Ihrem Handy:

  • Sie sind der Client, Sie fragen nach etwas
  • Die App ist das Interface, Sie nimmt Ihre Bestellung auf und zeigt, was verfügbar ist
  • Der Server des Restaurants ist der Server, Er hat alle Informationen und erfüllt Ihre Anfrage

Wenn Sie eine Pizza bestellen, sendet die App diese Anfrage an den Server des Restaurants. Der Server prüft, ob eine Pizza zubereitet werden kann, bereitet sie vor und teilt der App mit, dass sie fertig ist. Diese Interaktion folgt REST-Prinzipien, wenn sie über das Internet erfolgt.

Schlüsseleigenschaften von REST

1. Ressourcen-Identifikation über URIs

In REST ist alles eine Ressource, ein Informationsstück oder ein Objekt (wie ein Wetterbericht oder ein Profil). Diese Ressourcen werden über URIs (RFC 3986) identifiziert und zugänglich gemacht, im Grunde Web-Adressen.

2. Zustandslose Interaktionen

Jede Anfrage vom Client an den Server muss alle Informationen enthalten, die der Server benötigt, um die Anfrage zu verstehen und zu erfüllen. Der Server muss sich nicht an vorherige Interaktionen erinnern.

3. Standard-HTTP-Methoden

REST nutzt die in RFC 9110 definierten HTTP-Methoden wie GET, POST, PUT und DELETE; PATCH ist separat in RFC 5789 spezifiziert. Es sind Befehle, die der Client an einen Server senden kann:

  • GET: Informationen abrufen (wie das Menü eines Restaurants)
  • POST: Etwas Neues erstellen (wie eine neue Bestellung aufgeben)
  • PUT: Etwas Bestehendes aktualisieren (wie Ihre Bestellung ändern)
  • PATCH: Partielle Aktualisierung mit wenigen Attributen
  • DELETE: Etwas entfernen (wie eine Bestellung stornieren)

4. Representations

Wenn ein Client eine Ressource über REST anfragt, antwortet der Server mit den Daten in einem Standardformat, das beide verstehen, wie JSON (RFC 8259) oder XML (W3C-Recommendation). So wissen sowohl Client als auch Server, wie die Informationen zu interpretieren sind.

Warum REST verwenden?

REST ist beliebt, weil es einfach, leichtgewichtig und gut über das Internet funktioniert. Es nutzt bestehende Protokolle und Systeme des Webs und erfordert keine zusätzliche Software, Bibliotheken oder APIs, was es für Entwickler leicht nutzbar und verständlich macht.

Da REST auf Standardpraktiken und Internet-Protokollen basiert, ist es hochgradig skalierbar und kann eine große Anzahl von Anfragen effizient verarbeiten.