2012-05-08 12 views
11

So habe ich eine Website, die eine HTTP-PUT für eine bestimmte Ressource akzeptiert, z. /contact, mit der der Verbraucher einen Kontakt aktualisieren kann, vorausgesetzt, er hat die Validierung bestanden.Beim Aktualisieren einer Ressource, welcher HTTP-Statuscode wird zurückgegeben, wenn das Update erfolgreich ist?

Also aktualisiere ich die Aufzeichnung, alles ist großartig .. und jetzt muss ich etwas an den Verbraucher zurückgeben.

Was ist der HTTP Status Code, den ich zurückgeben sollte?

Wenn dies eine HTTP-POST (dh. Erstellen einer -neu- Ressource) wäre, würde ich eine 201 Created zurückgeben und ein Location Header-Attribut hinzufügen.

Aber .. Ich kann keine Hinweise darüber finden, was man für ein Update tun kann.

Prost :)

+0

Sehr gute Frage, sieht aus, als gäbe es keinen Standard-HTTP-Code dafür, also würde ich gerade 200 OK zurückgeben. –

Antwort

17

200 ist besonders geeignet, wenn Sie eine Darstellung der Aktion zurückgeben (obwohl der Work-in-Progress-but-Nearing-Last-Aufruf "HTTP bis" seltsamerweise PUT in its description of 200 OK nicht erwähnt).

Wenn Sie keine Repräsentation zurückgeben, verwenden Sie 204 No Content, um dem Client anzuzeigen, dass er seine aktuelle "Dokumentansicht" nicht ändern muss.

+0

Was ist die Darstellung der Aktion? Ist es eine Repräsentation der aktualisierten Ressource oder handelt es sich um etwas wie "Blablabla erfolgreich aktualisiert" – rmoestl

+1

Eine Darstellung der Aktion wäre "blablabla erfolgreich aktualisiert", lohnt sich in der Regel nur dann, wenn a) Details darüber, was passiert, wenn nützlich für Kunden aber vor allem b) Links zu was als nächstes zu tun – fumanchu

+0

Danke für die Klarstellung, @fumanchu. – rmoestl

5

200 ist der entsprechende Status-Code der PUT nur, dass ein Update angenommen und nicht schaffen, eine Ressource.