Kurzreferenz

RESTful API Spickzettel

Kurzreferenz für RESTful APIs: HTTP-Methodensemantik, Statuscode-Konventionen, JSON-Fehlerstrukturen, Header und Idempotenz.

· Veröffentlicht

REST (Representational State Transfer) ist ein Architekturstil für das Design vernetzter Web-API-Dienste über HTTP.

HTTP-Verben & Semantik

Methode Zielaktion Sicher Idempotent
GET Ressourcendarstellung abrufen Ja Ja
POST Neue untergeordnete Ressource erstellen Nein Nein
PUT Gesamte Ressourcendarstellung ersetzen Nein Ja
PATCH Ressourceneigenschaften partiell aktualisieren Nein Nein
DELETE Ressource löschen Nein Ja
HEAD Header ohne Antwortkörper abrufen Ja Ja
OPTIONS Unterstützte HTTP-Methoden eines Endpunkts abfragen Ja Ja

Häufige HTTP-Antwort-Statuscodes

Erfolg (2xx)

  • 200 OK: Anfrage erfolgreich (Antwortkörper enthält Darstellung).
  • 201 Created: Ressource erfolgreich erstellt (Location-Header gibt URI an).
  • 202 Accepted: Anfrage zur asynchronen Verarbeitung angenommen.
  • 204 No Content: Aktion erfolgreich, kein Antwortkörper (üblich bei DELETE).

Client-Fehler (4xx)

  • 400 Bad Request: Ungültige Syntax, fehlerhafte Parameter oder Validierungsfehler.
  • 401 Unauthorized: Authentifizierung fehlt oder ist ungültig.
  • 403 Forbidden: Authentifizierter Benutzer besitzt keine Berechtigung für die Ressource.
  • 404 Not Found: Ressourcen-URI existiert nicht.
  • 409 Conflict: Anfrage steht im Konflikt mit dem aktuellen Ressourcenzustand (z. B. doppelter eindeutiger Schlüssel).
  • 422 Unprocessable Entity: Wohlgeformte Anfrage scheiterte an semantischer Domänenvalidierung.
  • 429 Too Many Requests: Ratenbegrenzung (Rate Limit) überschritten.

Server-Fehler (5xx)

  • 500 Internal Server Error: Allgemeiner unbehandelter serverseitiger Fehler.
  • 502 Bad Gateway: Upstream-Server lieferte ungültige Antwort zurück.
  • 503 Service Unavailable: Server überlastet oder im Wartungsmodus.

Standardisierter JSON-Fehlerumschlag

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The email address provided is already registered.",
    "details": [
      {
        "field": "email",
        "issue": "unique_constraint_violated"
      }
    ]
  }
}

Referenzen

Verwandte Themen