2012-05-08 16 views
11

Quindi ho un sito web che accetta uno HTTP-PUT per una particolare risorsa, ad es. /contact che consentirà al consumatore di aggiornare un contatto, supponendo che abbiano superato la convalida.Quando si aggiorna una risorsa, quale codice di stato HTTP viene restituito quando l'aggiornamento ha esito positivo?

Così aggiorno il record, tutto è ottimo .. e ora ho bisogno di restituire qualcosa al consumatore.

Qual è il codice di stato HTTP Dovrei tornare?

Se si trattasse di un valore HTTP-POST (ad esempio, creazione di una nuova risorsa), restituirei un 201 Created e aggiungere un attributo di intestazione Location.

Ma .. Non riesco a trovare alcun indizio su cosa fare per un aggiornamento.

Saluti :)

+0

Molto buona domanda, sembra che non ci sia un codice HTTP standard per questo, quindi mi piacerebbe solo restituire un 200 OK. –

risposta

17

200 è particolarmente appropriato se si restituisce una rappresentazione dell'azione (sebbene il work-in-progress-but-near-last-call "HTTP bis" stranamente non menzioni PUT in its description of 200 OK).

Se non si restituisce alcun tipo di rappresentazione, utilizzare 204 No Content per indicare al client che non è necessario modificare la sua "vista documento" corrente.

+0

Qual è la rappresentazione dell'azione? È la rappresentazione della risorsa aggiornata o è qualcosa sulla falsariga di "Blablabla aggiornato con successo" – rmoestl

+1

Una rappresentazione dell'azione sarebbe "blablabla aggiornato con successo", di solito vale la pena solo se include a) i dettagli su ciò che è accaduto se utile ai clienti ma soprattutto b) link a cosa fare dopo – fumanchu

+0

Grazie per il chiarimento, @fumanchu. – rmoestl

5

200 è il codice di stato appropriata assumendo il PUT ha fatto solo un aggiornamento e non ha creato una risorsa.