REST (Representational State Transfer)

{{heroImg}} logo
REST ist ein Architekturstil für verteilte Systeme, insbesondere für Webservices. Es definiert eine Reihe von Prinzipien und Constraints für die Entwicklung von skalierbaren und wartbaren Web-APIs.

Was ist REST?

REST wurde von Roy Fielding im Jahr 2000 als Architekturstil für verteilte Systeme eingeführt. Es basiert auf den Prinzipien des World Wide Web und ermöglicht die Entwicklung von skalierbaren, zustandslosen und einheitlichen Schnittstellen.

Grundprinzipien

  • Client-Server-Architektur für klare Trennung der Zuständigkeiten
  • Zustandslosigkeit für bessere Skalierbarkeit
  • Caching zur Optimierung der Performance
  • Einheitliche Schnittstelle für konsistente Interaktion
  • Mehrschichtige Systeme für Flexibilität

HTTP-Methoden

  • GET: Ressourcen abrufen
  • POST: Neue Ressourcen erstellen
  • PUT: Ressourcen aktualisieren
  • DELETE: Ressourcen löschen
  • PATCH: Teilweise Aktualisierungen

Code-Beispiele

REST-Endpunkt für Benutzerinformationen

// GET-Anfrage
GET /api/users/123

// Antwort
{
    "id": 123,
    "name": "Max Mustermann",
    "email": "max@beispiel.de"
}

Ressourcenerstellung mit POST

// POST-Anfrage
POST /api/users
Content-Type: application/json

{
    "name": "Maria Muster",
    "email": "maria@beispiel.de"
}

Best Practices

  • Ressourcenorientiertes URI-Design
  • Verwendung von HTTP-Statuscodes
  • Versionierung von APIs
  • Dokumentation der Schnittstellen
  • Fehlerbehandlung und Validierung

Sicherheit und Authentifizierung

  • HTTPS für sichere Kommunikation
  • OAuth für Autorisierung
  • API-Keys für Authentifizierung
  • Rate Limiting zum Schutz vor Überlastung
  • CORS für browserbasierte Clients

Verwandte Begriffe