Grundlagen REST-API mit HTTP Methoden

Die REST API (Representational State Transfer Application Programming Interface) stellt Schnittstellen für die Entwicklung von Webservices zur Verfügung, die auf den Prinzipien des HTTP-Protokolls basieren. REST wurde ursprünglich von Roy Fielding in seiner Dissertation im Jahr 2000 beschrieben und ist heute eine der am häufigsten eingesetzten Methoden, um Dienste im Web bereitzustellen.

Die REST-Architektur zeichnet sich durch ihre Einfachheit, Skalierbarkeit, Performanz und leichte Integration mit verschiedensten Systemen aus. RESTful APIs ermöglichen es, verteilte Systeme effizient miteinander kommunizieren zu lassen, indem sie auf standardisierten HTTP-Methoden und einem klaren Ressourcenmodell beruhen.

Grundprinzipien der REST-Architektur

REST ist keine Technologie, sondern ein Architekturstil, der auf sechs grundlegenden Prinzipien basiert.

Client-Server-Modell

Die Client- und Server-Komponenten sind klar voneinander getrennt. Der Client ist für die Benutzeroberfläche zuständig, der Server für die Verarbeitung und Speicherung der Daten.

Zustandslosigkeit (Stateless)

Jeder Request vom Client an den Server muss alle nötigen Informationen enthalten, um verarbeitet werden zu können. Der Server speichert keine Session-Informationen.

Cachebarkeit

REST erlaubt das Caching von Antworten, was die Performanz verbessern kann.

Einheitliche Schnittstelle (Uniform Interface)

REST verwendet standardisierte HTTP-Methoden und -Statuscodes, um Interaktionen zu ermöglichen.

Schichtsystem (Layered System)

Die Architektur kann aus mehreren Schichten bestehen, z. B. einem Load Balancer oder einer Sicherheitskomponente, ohne dass der Client dies erkennen muss.

Optionale Code-on-Demand-Funktionalität

Server können ausführbaren Code (z. B. JavaScript) an Clients senden, was allerdings selten verwendet wird.

Ressourcenorientierter Ansatz

Ein zentrales Konzept von REST ist die Verwendung von Ressourcen. Ressourcen sind identifizierbare Objekte wie z. B. „Benutzer“, „Produkte“ oder „Bestellungen“, die über eindeutige URIs (Uniform Resource Identifiers) adressiert werden.

Dazu ein Beispiel

https://api.example.com/users/1234

Diese URI könnte z. B. auf den Benutzer mit der ID 1234 verweisen. Ressourcen werden in der Regel in einem standardisierten Format wie JSON oder XML bereitgestellt, wobei JSON heute deutlich häufiger verwendet wird.

Die wichtigsten HTTP-Methoden in REST APIs

REST APIs nutzen die HTTP-Methoden, um CRUD-Operationen (Create, Read, Update, Delete) auf Ressourcen durchzuführen. Es werden die vier wichtigsten HTTP-Methoden in REST beschrieben.

1. GET Methode

Die GET-Methode wird verwendet, um Daten (Ressourcen) vom Server abzurufen. Sie ist „safe“ und „idempotent“, d. h. wiederholte Anfragen haben denselben Effekt und verursachen keine Änderungen.

Beispiel HTTP Kommunikation:

GET /users/123 HTTP/1.1

JSON Antwort


{
"id": 123,
"name": "Max Mustermann",
"email": "max@example.com"
}

2. POST Methode

Mit POST werden neue Ressourcen erstellt. Diese Methode ist nicht idempotent, da ein mehrfaches Ausführen dieselbe Ressource mehrmals erzeugen kann.

HTTP Beispiel:

POST /users HTTP/1.1
Content-Type: application/json

{
„name“: „Lisa Müller“,
„email“: „lisa@example.com“
}

JSON Antwort


{
"id": 124,
"name": "Lisa Müller",
"email": "lisa@example.com"
}

3. PUT Methode

PUT wird verwendet, um eine Ressource vollständig zu aktualisieren oder zu ersetzen. Diese Methode ist idempotent.

HTTP Beispiel


PUT /users/123 HTTP/1.1
Content-Type: application/json

{
„name“: „Max Mustermann“,
„email“: „max.neu@example.com“
}

4. DELETE Methode

Mit DELETE wird eine Ressource entfernt. Auch diese Methode ist idempotent.

HTTP Beispiel

DELETE /users/123 HTTP/1.1

Weitere HTTP-Methoden

PATCH, zum teilweisen Aktualisieren einer Ressource (z. B. nur die E-Mail-Adresse).
OPTIONS gibt an, welche Methoden für eine bestimmte Ressource unterstützt werden.
HEAD ist ähnlich wie GET, liefert aber nur die Header-Informationen, keinen Body.

HTTP-Statuscodes in REST

Ein weiterer Bestandteil der REST API ist die Nutzung von standardisierten HTTP-Statuscodes, um dem Client den Ausgang der Operation mitzuteilen.

  • 200 OK: Anfrage erfolgreich verarbeitet.
  • 201 Created: Neue Ressource erfolgreich erstellt.
  • 204 No Content: Operation erfolgreich, aber keine Rückgabe erforderlich (z. B. bei DELETE).
  • 400 Bad Request: Ungültige Anfrage.
  • 401 Unauthorized: Authentifizierung erforderlich.
  • 403 Forbidden: Zugriff verweigert.
  • 404 Not Found: Ressource nicht gefunden.
  • 500 Internal Server Error: Serverfehler.

Vorteile von REST APIs

  • Durch die Nutzung von HTTP-Standards ist REST leicht verständlich und implementierbar.
  • REST APIs sind sprachunabhängig – sie können von Clients in Java, Python, JavaScript etc. verwendet werden.
  • Die zustandslose Kommunikation erlaubt eine einfache horizontale Skalierung.
  • REST ist zum De-facto-Standard geworden – zahlreiche Tools, Frameworks und Bibliotheken unterstützen diesen Ansatz.

Fazit

REST APIs sind ein unverzichtbares Werkzeug in der modernen Softwareentwicklung. Sie ermöglichen es, Daten zwischen Client und Server effizient und standardisiert auszutauschen. Durch die klare Trennung von Ressourcen, die Nutzung etablierter HTTP-Methoden und Statuscodes sowie die einfache Struktur eignen sich REST APIs für eine Vielzahl von Anwendungsfällen – von einfachen Microservices bis hin zu komplexen Unternehmenssystemen. Ein gutes Verständnis von REST ist daher eine Schlüsselqualifikation für Entwickler, Architekten und alle, die an der Entwicklung von Webanwendungen beteiligt sind.

Barrierefreiheit