Architektur

REST – Representational State Transfer

Diese Seite erklärt das REST-Architekturprinzip und dessen zentrale Richtlinien zur Gestaltung von Web-APIs.

Was ist REST?

REST beschreibt Richtlinien, wie Ressourcen (z. B. Datenobjekte) über eine einheitliche Schnittstelle angesprochen werden. REST ist zustandslos und nutzt standardisierte HTTP-Methoden wie GET, POST, PUT, DELETE.

REST ist kein Protokoll, sondern ein Architekturstil – konkretisiert wird er durch die Implementierung als RESTful API.


Architekturrichtlinien von REST

Eine REST-konforme API sollte folgende Prinzipien einhalten:

1. Client-Server-Prinzip

  • Trennung von Benutzeroberfläche (Client) und Datenverarbeitung (Server)
  • Vorteil: Unabhängige Weiterentwicklung beider Seiten

2. Zustandslosigkeit (Stateless)

  • Jeder Request enthält alle Informationen zur Verarbeitung
  • Der Server speichert keinen Client-Zustand (z. B. keine Sessions)

3. Cachebarkeit

  • Antworten können als cachebar markiert werden
  • Reduziert Serverlast und verbessert Performance

4. Einheitliche Schnittstelle (Uniform Interface)

  • Konsistentes API-Design mit festen Regeln:
    • Ressourcen über URIs zugänglich (/produkte/123)
    • Verwendung standardisierter HTTP-Methoden
      • GET: Ressource lesen
      • POST: Ressource erstellen
      • PUT: Ressource ersetzen
      • PATCH: Ressource teilweise ändern
      • DELETE: Ressource löschen
    • Selbstbeschreibende Nachrichten (inkl. Medientyp, z. B. Content-Type: application/json)

5. Mehrschichtige Architektur (Layered System)

  • Die Kommunikation erfolgt über eine definierte Zwischenschicht (z. B. API-Gateway, Proxy)
  • Der Client weiß nicht, ob er direkt mit dem Server oder einem Zwischensystem spricht

6. Code-on-Demand (optional)

  • Der Server kann ausführbaren Code liefern (z. B. JavaScript), der vom Client ausgeführt wird

Beispiel: RESTful API

Anfrage:

GET /api/produkte/42 HTTP/1.1
Host: shop.example.com
Accept: application/json

Antwort:

{
  "id": 42,
  "name": "Gaming-Maus",
  "preis": 59.99
}

Vorteile von REST

  • Einfach zu verstehen und zu implementieren
  • Skalierbar und flexibel
  • Sprache und plattformunabhängig
  • Ideal für moderne Web- und Mobile-Anwendungen