HTTP 201 Created
Erfolgsantwort für das Erstellen: Eine neue Ressource existiert jetzt, und Location gibt an, wo.
Was HTTP 201 bedeutet
HTTP 201 Created wird zurückgegeben, wenn ein Request — fast immer ein POST oder PUT — erfolgreich eine neue Ressource auf dem Server erstellt hat. REST-APIs nutzen es, um „es existiert jetzt etwas Neues“ vom generischen 200-Erfolg zu unterscheiden.
Eine ordentliche 201-Antwort enthält einen Location-Header mit der URL der neu erstellten Ressource und gibt das erstellte Objekt oft auch im Body zurück, damit der Client keinen zusätzlichen GET-Request braucht.
Häufige Ursachen von 201-Antworten
- Ein POST-Request hat einen Datensatz, eine Datei oder ein Konto erstellt.
- Ein PUT-Request hat eine Ressource genau unter der vom Client angegebenen URL erstellt.
- Ein Batch-Endpunkt hat das synchrone Erstellen einer primären Ressource abgeschlossen.
Gute Praktiken für Entwickler
- Setze den Location-Header auf die kanonische URL der neuen Ressource.
- Gib die erstellte Repräsentation (mit ihrer server-vergebenen ID) im Body zurück, um Clients einen weiteren Roundtrip zu ersparen.
- Wenn die Erstellung eingereiht statt abgeschlossen ist, gib stattdessen 202 Accepted zurück.
- Wiederholte identische POSTs erzeugen Duplikate? Erwäge Idempotency Keys und antworte bei Wiederholungen mit 200/409.
Beispielantwort
HTTP/1.1 201 Created
Location: /api/users/1024
Content-Type: application/json
{"id":1024,"name":"New user"}FAQ
Was ist der Unterschied zwischen 200 und 201?
Beide bedeuten Erfolg, aber 201 sagt dem Client konkret, dass eine neue Ressource erstellt wurde. 200 bedeutet nur, dass der Request verarbeitet wurde.
Ist der Location-Header bei 201 erforderlich?
Es wird dringend empfohlen: Er verweist auf die URL der neu erstellten Ressource, damit Clients sie abrufen oder verlinken können.
Wann sollte eine API 202 statt 201 zurückgeben?
Wenn die Erstellung asynchron erfolgt — 202 bedeutet, dass der Request akzeptiert wurde, die Ressource aber noch nicht existiert.