Sto progettando un servizio Web RESTful utilizzando WebApi e mi chiedevo quali risposte HTTP e quali corpi di risposta restituire durante l'aggiornamento / la creazione di oggetti.
Ad esempio, posso usare il metodo POST per inviare alcuni JSON al servizio Web e quindi creare un oggetto. È consigliabile impostare quindi lo stato HTTP su creato (201) o ok (200) e semplicemente restituire un messaggio come "Nuovo dipendente aggiunto" o restituire l'oggetto che è stato inviato originariamente?
Lo stesso vale per il metodo PUT. Quale stato HTTP è meglio usare e devo restituire l'oggetto che è stato creato o solo un messaggio? Considerando il fatto che l'utente conosce comunque l'oggetto che sta cercando di creare / aggiornare.
qualche idea?
Esempio:
Aggiungi nuovo dipendente:
POST /api/employee HTTP/1.1
Host: localhost:8000
Content-Type: application/json
{
"Employee": {
"Name" : "Joe Bloggs",
"Department" : "Finance"
}
}
Aggiorna dipendente esistente:
PUT /api/employee HTTP/1.1
Host: localhost:8000
Content-Type: application/json
{
"Employee": {
"Id" : 1
"Name" : "Joe Bloggs",
"Department" : "IT"
}
}
risposte:
Risposta con oggetto creato / aggiornato
HTTP/1.1 201 Created
Content-Length: 39
Content-Type: application/json; charset=utf-8
Date: Mon, 28 Mar 2016 14:32:39 GMT
{
"Employee": {
"Id" : 1
"Name" : "Joe Bloggs",
"Department" : "IT"
}
}
Risposta con solo messaggio:
HTTP/1.1 200 OK
Content-Length: 39
Content-Type: application/json; charset=utf-8
Date: Mon, 28 Mar 2016 14:32:39 GMT
{
"Message": "Employee updated"
}
Risposta con solo codice di stato:
HTTP/1.1 204 No Content
Content-Length: 39
Date: Mon, 28 Mar 2016 14:32:39 GMT
UPDATE/INSERT ... RETURNING
variante Postgresql per SQL. È estremamente utile, soprattutto perché mantiene l'invio di nuovi dati e la richiesta per la versione aggiornata atomica.