2012-05-08 15 views
11

Więc mam stronę internetową, która akceptuje HTTP-PUT dla konkretnego zasobu, np. /contact, która pozwoli konsumentowi zaktualizować kontakt, zakładając, że przeszedł on walidację.Podczas aktualizacji zasobu, jaki kod statusu HTTP jest zwracany po pomyślnym zakończeniu aktualizacji?

Aktualizuję więc płytę, wszystko jest świetne ... i teraz muszę zwrócić coś konsumentowi.

Jaki kod HTTP powinien być zwrócony?

Jeśli był to HTTP-POST (tj. Tworzenie zasobu -new-), wówczas zwrócę wartość 201 Created i dodaję atrybut nagłówka Location.

Ale .. Nie mogę znaleźć żadnych wskazówek dotyczących tego, co zrobić dla aktualizacji.

Cheers :)

+0

Bardzo dobre pytanie, wygląda na to, że nie ma standardowego kodu HTTP, więc właśnie zwrócę 200 OK. –

Odpowiedz

17

200 jest szczególnie odpowiednie, jeśli zwracasz reprezentację akcji (chociaż trwająca praca "w toku, ale-bliska-ostatnia" "HTTP bis" dziwnie nie wspomina o PUT w its description of 200 OK).

Jeśli nie wrócisz żadnej reprezentacji, użyj 204 No Content, aby wskazać klientowi, że nie musi zmieniać bieżącego "widoku dokumentu".

+0

Jaka jest reprezentacja działania? Czy jest to reprezentacja zaktualizowanego zasobu, czy jest to coś w rodzaju "Blablabla z powodzeniem zaktualizowana"? – rmoestl

+1

Reprezentacja akcji byłaby "pomyślnie zaktualizowana blablabla", zwykle tylko warta zachodu, jeśli zawiera a) szczegóły dotyczące tego, co się stało, jeśli jest to przydatne dla klientów ale szczególnie b) linki do tego, co dalej. – fumanchu

+0

Dzięki za wyjaśnienie, @fumanchu. – rmoestl

5

200 jest odpowiedni kod statusu zakładając PUT tylko zrobiłem aktualizację i nie stworzyć zasób.