Skip to content
IRC-Coding IRC-Coding
REST HATEOAS ETag Caching OpenAPI

REST Grundlagen einfach erklärt: Constraints, HATEOAS, Caching & API-Design

REST erklärt: 6 Constraints, Ressourcen/URIs, Methoden-Semantik (safe/idempotent), Statuscodes, HATEOAS, Caching (ETag) und Prüfungsfragen.

S

schutzgeist

1 min read

REST Grundlagen

Dieser Beitrag ist eine Begriffserklärung zu REST – inklusive Prüfungsfragen, Praxisbeispiel und Tags.

In a Nutshell

REST ist ein Architekturstil für verteilte Systeme auf HTTP-Basis: Ressourcen werden über URIs adressiert, per Methoden manipuliert und über Repräsentationen übertragen. Ziel: lose Kopplung, Skalierbarkeit, Caching.

Kompakte Fachbeschreibung

REST definiert sechs Constraints:

  • Client-Server
  • Zustandslosigkeit
  • Cache-Fähigkeit
  • Einheitliche Schnittstelle
  • Schichten
  • optional Code on Demand

Ressourcen sind fachliche Objekte (z.B. /orders/42). Repräsentationen transportieren Zustand (JSON/XML), verhandelt über Accept/Content-Type.

Methoden-Semantik:

  • GET: safe + idempotent
  • POST: nicht idempotent
  • PUT: idempotent
  • PATCH: nicht zwingend idempotent
  • DELETE: idempotent

Statuscodes signalisieren Erfolge/Fehler (200/201/204/400/401/403/404/409/500). HATEOAS nutzt Links in Repräsentationen für „entdeckbare“ Workflows. Caching nutzt Cache-Control, ETag, If-None-Match.

Prüfungsrelevante Stichpunkte

  • Ressourcenorientiertes URI-Design (keine Verben im Pfad)
  • Safe/Idempotent-Semantik von Methoden
  • Statuscodes korrekt (Location bei 201)
  • Idempotency Key für POST (wenn nötig)
  • Security: TLS, OAuth/OIDC/JWT, CORS, Rate Limiting
  • Wirtschaftlichkeit: lose Kopplung
  • Doku: OpenAPI + Fehlerkatalog

Kernkomponenten

  1. Ressource + URI-Design
  2. Repräsentationen + Medientypen
  3. Methoden-Semantik
  4. Statuscodes + Header
  5. Content Negotiation
  6. Caching (ETag)
  7. Security
  8. Versionierung
  9. Observability
  10. Tests (Contract/API)

Praxisbeispiel (Orders + HATEOAS)

{
  "id": 42,
  "status": "created",
  "links": [
    { "rel": "self", "href": "/orders/42" },
    { "rel": "confirm", "method": "POST", "href": "/orders/42/confirm" }
  ]
}

Vorteile und Nachteile

Vorteile

  • Interoperabilität durch Standards
  • Lose Kopplung
  • Gute Skalierung durch Statelessness
  • Effizientes Caching

Nachteile

  • Overfetching/Underfetching möglich
  • Komplexe Schreibprozesse erfordern Idempotenz-Strategien
  • HATEOAS wird häufig nicht konsequent genutzt

Typische Prüfungsfragen (mit Kurzantwort)

  1. Welche REST-Constraints gibt es? Client-Server, Stateless, Cache, Uniform Interface, Layered, optional Code on Demand.
  2. PUT vs PATCH bzgl. Idempotenz? PUT idempotent, PATCH nicht automatisch.
  3. Wie funktionieren ETag + bedingte Anfragen? Client sendet If-None-Match, Server antwortet 304 oder liefert neuen Body.

Freie Antwort

REST ist mehr als „JSON über HTTP“: die Constraints und die Methodensemantik sind entscheidend. Saubere Fehlerobjekte, Versionierung und Observability machen APIs wartbar.

Lernstrategie

  1. Öffentliche API analysieren und Constraints zuordnen.
  2. Ressourcenmodell entwerfen (URIs/Methoden/Statuscodes).
  3. Tabelle Methodensemantik (safe/idempotent) üben.
  4. Verben im Pfad vermeiden.

Wichtigste Quellen

  1. https://roy.gbiv.com/untangled
  2. https://www.rfc-editor.org/rfc/rfc9110
  3. https://learn.microsoft.com/azure/architecture/best-practices/api-design
Zurück zum Blog
Share:

Ähnliche Beiträge