Was ist eine REST-API?

Aktualisiert: September 2026

Eine REST-API ist eine API, die dem Architekturstil REST folgt: Ressourcen unter URLs, zustandslose Anfragen und standardisierte HTTP-Methoden. REST – Representational State Transfer, definiert in Roy Fieldings Dissertation aus dem Jahr 2000 – ist ein Stil, kein Protokoll und kein Standard: eine Reihe von Constraints, die zusammen eingehalten APIs hervorbringen, die das gesamte Web bereits zu konsumieren, zu cachen und zu skalieren weiß.

Das Wichtigste in Kürze

FrageAntwort
Das ModellRessourcen unter URLs · Repräsentationen (meist JSON) · Standardmethoden
Die QuelleFieldings Dissertation von 2000, Kapitel 5 – ein Architekturstil, keine Spezifikation
Die sechs ConstraintsClient-Server · zustandslos · cachebar · einheitliche Schnittstelle · Schichten · Code on Demand (optional)
Die VerbenGET · POST · PUT · PATCH · DELETE – mit Semantik für Sicherheit und Idempotenz
Die ehrliche FußnoteDie meisten produktiven “REST”-APIs sind HTTP-APIs der Stufe 2 – und das ist in Ordnung

Ein vollständiger CRUD-Zyklus in reinem HTTP

Der ganze Stil in vier Anfragen – genau das sendet am Ende jedes Framework und jedes SDK:

POST /v1/posts                     →  201 Created            anlegen
{ "title": "Hello REST" }             Location: /v1/posts/8fk2

GET /v1/posts/8fk2                 →  200 OK                 lesen
                                      { "title": "Hello REST", … }

PUT /v1/posts/8fk2                 →  200 OK                 ersetzen
{ "title": "Hello again" }            (PATCH würde Felder ändern)

DELETE /v1/posts/8fk2              →  204 No Content         löschen
GET /v1/posts/8fk2                 →  404 Not Found          …und er ist weg

Derselbe Zyklus über SDKs, die die REST-Aufrufe verpacken:

// JavaScript / Node.js — Back4app JS SDK
// The REST semantics, wrapped: create, read, update, delete
const post = new Parse.Object('Post');
post.set('title', 'Hello REST');
await post.save();                            // POST   /classes/Post      → 201

const fetched = await new Parse.Query('Post')
  .get(post.id);                              // GET    /classes/Post/:id  → 200

fetched.set('title', 'Hello again');
await fetched.save();                         // PUT    /classes/Post/:id  → 200

await fetched.destroy();                      // DELETE /classes/Post/:id  → 200

Die sechs Constraints von REST

  1. Client-Server – Schnittstelle und Implementierung entwickeln sich unabhängig voneinander; die Oberfläche weiß nie, wie die Speicherung funktioniert.
  2. Zustandslos – jede Anfrage ist in sich abgeschlossen; der Server hält zwischen Aufrufen keine Session. Genau das erlaubt es jeder Replik, jede Anfrage zu beantworten.
  3. Cachebar – Antworten deklarieren ihre Cachebarkeit selbst; GETs mit korrekten Cache-Headern lassen die gesamte Caching-Infrastruktur des Webs (Browser, CDNs, Proxys) für Ihre API arbeiten.
  4. Einheitliche Schnittstelle – der Constraint, der REST ausmacht, in vier Teilen: über URIs identifizierte Ressourcen; Manipulation über Repräsentationen (Sie senden das JSON zurück, zu dem die Ressource werden soll); selbstbeschreibende Nachrichten (Methode + Header sagen alles, was zur Verarbeitung nötig ist); und Hypermedia als Motor des Anwendungszustands (Antworten verlinken die nächsten Aktionen).
  5. Schichtensystem – Clients können nicht erkennen, ob sie mit dem Ursprungsserver, einem Cache oder einem Gateway sprechen; Zwischenschichten lassen sich frei einfügen.
  6. Code on Demand (optional) – Server dürfen ausführbaren Code an Clients ausliefern; der einzige als optional markierte Constraint und derjenige, den die meisten APIs ignorieren.

HTTP-Methoden: Sicherheit, Idempotenz, CRUD

Die Tabelle, die auf fast jeder gut rankenden Seite fehlt – die Semantik aus RFC 9110, verdichtet:

MethodeCRUD-RolleSicher?Idempotent?Blind wiederholen?
GETLesenJaJaJa
POSTAnlegenNeinNeinNein – kann Duplikate erzeugen
PUTErsetzenNeinJaJa – gleiches Ergebnis
PATCHTeilaktualisierungNeinNicht garantiertHängt vom Patch-Design ab
DELETEEntfernenNeinJaJa – bleibt gelöscht

Sicher heißt, die Anfrage ändert nichts; idempotent heißt, eine Wiederholung ändert nichts weiter. Das ist kein Detailwissen, sondern Ihre Retry-Strategie: Ein Netzwerk-Timeout bei PUT lässt sich gefahrlos wiederholen, derselbe Timeout bei POST braucht einen Idempotenzschlüssel oder eine Duplikatprüfung. Die vollständige CRUD-Zuordnung hat einen eigenen Eintrag.

Statuscodes: was wann zurückgeben

SituationRückgabe
Lesen erfolgreich200 OK
Ressource angelegt201 Created + Header Location
Gelöscht; nichts zu melden204 No Content
Fehlerhafte Anfrage400 Bad Request
Fehlende oder ungültige Zugangsdaten401 Unauthorized
Authentifiziert, aber nicht berechtigt403 Forbidden
Ressource existiert nicht404 Not Found
Rate Limit überschritten429 Too Many Requests (Details)
Serverfehler500 Internal Server Error

An den Unterscheidungen zwischen 401 und 403 sowie zwischen 200, 201 und 204 zeigt sich API-Handwerk: Präzise Codes machen Clients allein anhand der Statuszeile debugbar.

Ist Ihre API wirklich REST? Die Reifegradleiter

Der ehrliche Abschnitt, den kommerzielle Erklärungen weglassen. Das Richardson Maturity Model bewertet HTTP-APIs: Stufe 0 (eine URL, ein Verb, verkapptes RPC), Stufe 1 (Ressourcen unter URLs), Stufe 2 (korrekte Methoden und Statuscodes), Stufe 3 (Hypermedia – HATEOAS).

Richardson Maturity Model für REST-APIsVier Stufen von Stufe null, einfachem HTTP-Tunneling, über Ressourcen und dann HTTP-Verben und Statuscodes bis zu Stufe drei mit Hypermedia-Steuerung; die meisten produktiven APIs befinden sich auf Stufe zwei.

Stufe 0 – ein Endpoint, alles per POST (verkapptes RPC)

Stufe 1 – Ressourcen: /posts/8fk2

Stufe 2 – Verben + Statuscodes ← hier leben die meisten produktiven APIs

Stufe 3 – Hypermedia: Antworten verlinken die nächsten Aktionen (HATEOAS)

Vier Stufen von Stufe null, einfachem HTTP-Tunneling, über Ressourcen und dann HTTP-Verben und Statuscodes bis zu Stufe drei mit Hypermedia-Steuerung; die meisten produktiven APIs befinden sich auf Stufe zwei.

Nach Fieldings eigenem Beharren ist eine API ohne Hypermedia kein REST – er hat einen pointierten Essay geschrieben, der genau das sagt. In der Praxis ist fast jede gefeierte “REST-API” eine HTTP-API der Stufe 2: Ressourcen, Verben, Statuscodes, JSON, keine Hypermedia. Das ist weniger eine Frage der Reinheit als des Vokabulars: Wer die Leiter kennt, weiß, was der Begriff in einer Stellenanzeige bedeutet (Stufe 2) und was in der Dissertation (Stufe 3) – und bleibt sowohl von Cargo-Cult-HATEOAS als auch von pedantischen Korrekturen verschont.

REST vs. SOAP vs. GraphQL vs. gRPC

KriteriumRESTSOAPGraphQLgRPC
WesenArchitekturstilProtokollAbfragesprache + RuntimeRPC-Framework
ÜbertragungJSON über HTTPXML-EnvelopesJSON über HTTP (ein Endpoint)Protobuf über HTTP/2
VertragOpenAPI (Konvention)WSDL (verpflichtend)Schema (eingebaut).proto (verpflichtend)
CachingHTTP-nativ – seine SuperkraftSchwachAuf AnwendungsebeneAuf Anwendungsebene
StärkenÖffentliches Ressourcen-CRUDFormale Enterprise-/Legacy-AnforderungenVom Client geformte, verschachtelte DatenSchnelle interne Dienste
SchwächeFeste Strukturen führen zu Over-/UnderfetchingGeschwätzigkeitKomplexes Caching und Rate LimitingReibung im Browser

Der Vergleich mit GraphQL hat einen eigenen, ausführlichen Eintrag.

Konventionen, die eine REST-API angenehm machen

Über die Constraints hinaus gibt es Konventionen, nach denen Konsumenten Sie stillschweigend bewerten: Ressourcen als Substantive im Plural (/posts, nicht /getPost); höchstens eine Verschachtelungsebene (/posts/8fk2/comments, dann Schluss); Paginierung für jede Collection – cursorbasiert für Tiefe und Stabilität, mit durchgesetzten Limits; Filtern und Sortieren als Query-Parameter, nicht als Endpoint-Varianten; Versionierung mit expliziter Richtlinie (Pfad /v1/ oder Header – entscheiden Sie sich für eins, veröffentlichen Sie Deprecation-Fristen); Content Negotiation, die respektiert wird (Accept, Content-Type); und Fehler als strukturiertes JSON mit einem maschinenlesbaren Code statt bloßer Prosa. Nichts davon steht in der Dissertation – und doch macht all das den Unterschied zwischen einer API, die Entwickler empfehlen, und einer, die sie ertragen.

Typische Anwendungsfälle

  • Öffentliche und Partner-APIs – die Allgegenwart von REST ist das Feature: Jede Sprache, jedes Werkzeug und jeder Entwickler spricht sie.
  • Backends für mobile und Web-Apps – Ressourcen-CRUD über HTTP entspricht der Art, wie die meisten App-Screens tatsächlich Daten konsumieren.
  • Nahtstellen zwischen Microservices – interne Verträge, bei denen sich das HTTP-Tooling (Gateways, Tracing, Caching) bezahlt macht.
  • Integrationen im Webhook-Stil – Systeme benachrichtigen Systeme mit einfachen HTTP-Aufrufen, die beide Seiten ohnehin verstehen.
  • Automatisch generierte Daten-APIs – Plattformen, die eine Datenbank als REST-Ressourcen bereitstellen – der schnellste Weg vom Schema zur funktionierenden API.

Sollten Sie REST verwenden? Eine Entscheidungsmatrix

REST ist der richtige Standard, wenn…Greifen Sie zu etwas anderem, wenn…
Öffentliche API, unbekannte KonsumentenInternes Mesh mit hohem Durchsatz → gRPC
Ressourcenorientierte CRUD-DomäneClients verschachtelte Antworten selbst formen müssen → GraphQL
HTTP-Caching die Leselast tragen kannBidirektionaler Echtzeit-Push nötig ist → WebSockets / Live Queries
Einfachheit und breites Tooling zählenFormale Enterprise-Verträge verlangt sind → SOAP
Screens sich sauber auf Ressourcen abbilden lassenEin Screen fünf Dienste aggregiert → Composite-Endpoint / BFF

Grenzen und Trade-offs

  • Feste Repräsentationen passen nicht zu vielfältigen Clients. Over- und Underfetching sind die strukturelle Schwäche von REST; Sparse Fieldsets und Expansion-Parameter mildern sie, GraphQL setzt auf ein anderes Design.
  • Kein verpflichtender Vertrag. Nichts erzwingt eine OpenAPI-Spezifikation, daher sind viele REST-APIs nur durch Überlieferung dokumentiert; Disziplin ist freiwillig, während gRPC und GraphQL sie strukturell verankern.
  • Zustandslosigkeit wiederholt Kontext. Authentifizierungs- und Tenant-Kontext reisen mit jeder Anfrage – in Bytes günstig, aber die Session-Semantik wandert in Tokens, und manche Abläufe (mehrstufige Transaktionen) werden umständlich.
  • N+1 als eingebaute Versuchung. Das Denken in einer Ressource pro URL verleitet zu Clients mit einem Aufruf pro Element; gute APIs liefern Expansion und Batch-Möglichkeiten, bevor Konsumenten Schleifen improvisieren.
  • Das Wort “REST” ist mehrdeutig. Im Alltag meist eine HTTP-API der Stufe 2, in der Dissertation eine Hypermedia-Architektur – klären Sie, was eine Spezifikation, eine Stellenanzeige oder ein Reviewer meint, bevor Sie diskutieren.

REST-APIs mit Back4app

Back4app ist eine Open-Source-Plattform für Backend as a Service (BaaS), die eine verwaltete Datenbank, automatisch generierte REST- und GraphQL-APIs, Authentifizierung, Dateispeicher und Serverless-Funktionen mit Cloud Code kombiniert. Die REST-API wird hier generiert, nicht gebaut: Jede Klasse in Ihrem Datenmodell ist sofort eine Ressource – POST /classes/Post legt an, GET /classes/Post/:id liest, mit den Methoden, Statuscodes und der Location-Semantik aus dem Durchlauf oben –, abgesichert durch Schlüssel, Benutzer-Tokens und Berechtigungen auf Klassenebene an der Grenze. Die Code-Tabs zeigen denselben Zyklus über die SDKs, die nichts anderes sind als dünne, idiomatische Hüllen um genau dieses HTTP; wächst eine Operation über CRUD hinaus, fügt eine Cloud-Code-Funktion einen eigenen Endpoint in einer einzigen Datei hinzu. REST der Stufe 2, standardmäßig korrekt, vom Schema zur URL in der Zeit, die das Definieren der Klasse dauert.

Häufige Fragen

Was ist eine REST-API, einfach erklärt?

Eine Möglichkeit für zwei Anwendungen, über HTTP mit Konventionen zu kommunizieren, die ohnehin jeder kennt: Jedes Objekt (ein Benutzer, eine Bestellung) liegt unter einer URL, Sie bearbeiten es mit einem Standardverb – GET zum Lesen, POST zum Anlegen, PUT oder PATCH zum Ändern, DELETE zum Entfernen –, und jede Anfrage steht für sich und enthält alles, was der Server für die Antwort braucht.

Wofür steht REST?

Für Representational State Transfer, aus der Dissertation von Roy Fielding aus dem Jahr 2000. Der Name beschreibt den Mechanismus: Der Server überträgt eine Repräsentation des Zustands einer Ressource (meist JSON) an den Client, und der Client bewegt die Anwendung über diese Repräsentationen von Zustand zu Zustand.

Was ist der Unterschied zwischen REST und RESTful?

Im Alltag keiner – die Begriffe sind austauschbar. Genau genommen bezeichnet REST den Architekturstil und RESTful das Adjektiv für eine API, die ihn umsetzt. Die verbreitete Behauptung, "RESTful befolgt alle Regeln, REST nur einige", hat in Fieldings Arbeit keine Grundlage.

Welche sechs Constraints hat REST?

Client-Server-Trennung, Zustandslosigkeit, Cachebarkeit, einheitliche Schnittstelle, Schichtensystem und – optional – Code on Demand. Die einheitliche Schnittstelle zerfällt ihrerseits in vier Regeln: über URIs identifizierte Ressourcen, Manipulation über Repräsentationen, selbstbeschreibende Nachrichten und Hypermedia als Motor des Anwendungszustands.

Was ist der Unterschied zwischen PUT und POST?

Idempotenz und Adressierung. POST legt etwas unterhalb einer Collection an – der Server vergibt die URL, und eine wiederholte Anfrage erzeugt Duplikate. PUT schreibt eine vollständige Repräsentation an eine bekannte URL – eine Wiederholung führt zum selben Zustand, sodass Wiederholungsversuche gefahrlos sind. Dieser Sicherheitsunterschied, nicht der Stil, macht die Unterscheidung wichtig.

Muss eine REST-API JSON verwenden?

Nein. REST ist formatunabhängig – eine Ressource kann als JSON, XML, HTML oder Bild repräsentiert werden, ausgehandelt über die Header Accept und Content-Type. JSON ist schlicht der moderne Standard, weil jeder Client es günstig parsen kann. Der Constraint betrifft Repräsentationen, nicht eine bestimmte.

Was bedeutet zustandslos bei einer REST-API?

Der Server merkt sich zwischen zwei Anfragen nichts über den Client: Jede Anfrage enthält alles, was zu ihrer Verarbeitung nötig ist, einschließlich Zugangsdaten wie einem Bearer-Token. Der Gewinn ist horizontale Skalierung – jeder Server kann jede Anfrage beantworten –, der Preis sind ein paar wiederholte Bytes Kontext pro Aufruf.

Was ist HATEOAS?

Hypermedia As The Engine Of Application State: Antworten enthalten Links zu den als Nächstes verfügbaren Aktionen, sodass Clients sich durch die API bewegen wie Menschen durch das Web – indem sie Links folgen, statt URLs fest zu codieren. Es ist der am seltensten umgesetzte Constraint; die meisten produktiven "REST"-APIs lassen ihn weg und leben gut auf Stufe 2 des Reifegradmodells.

Verwandte Begriffe

Vergleichen mit

Weiterführende Quellen

Bereit, Ihr Backend zu bauen?

Starten Sie Ihr Projekt auf Back4app in wenigen Minuten — Datenbank, Authentifizierung, APIs und Cloud Code inklusive. Keine Kreditkarte erforderlich.

Geschrieben und geprüft von Back4app Engineering, Back4app Engineering · Veröffentlicht am 2026-09-21