Saya merancang layanan web RESTful menggunakan WebApi dan bertanya-tanya apa tanggapan HTTP dan badan respons untuk kembali saat memperbarui / membuat objek.
Sebagai contoh saya dapat menggunakan metode POST untuk mengirim beberapa JSON ke layanan web dan kemudian membuat objek. Apakah ini praktik terbaik untuk kemudian mengatur status HTTP ke diciptakan (201) atau ok (200) dan hanya mengembalikan pesan seperti "Karyawan Baru ditambahkan", atau mengembalikan objek yang dikirim awalnya?
Hal yang sama berlaku untuk metode PUT. Status HTTP mana yang paling baik digunakan dan apakah saya harus mengembalikan objek yang telah dibuat atau hanya pesan? Mengingat fakta bahwa pengguna tahu objek apa yang mereka coba buat / perbarui.
Adakah pikiran?
Contoh:
Tambahkan Karyawan Baru:
POST /api/employee HTTP/1.1
Host: localhost:8000
Content-Type: application/json
{
"Employee": {
"Name" : "Joe Bloggs",
"Department" : "Finance"
}
}
Perbarui karyawan yang ada:
PUT /api/employee HTTP/1.1
Host: localhost:8000
Content-Type: application/json
{
"Employee": {
"Id" : 1
"Name" : "Joe Bloggs",
"Department" : "IT"
}
}
Tanggapan:
Respons dengan objek dibuat / diperbarui
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"
}
}
Respons dengan pesan adil:
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"
}
Respons dengan kode status yang adil:
HTTP/1.1 204 No Content
Content-Length: 39
Date: Mon, 28 Mar 2016 14:32:39 GMT
UPDATE/INSERT ... RETURNING
varian Postgresql untuk SQL. Ini sangat berguna, terutama karena menyimpan pengajuan data baru dan meminta atomic versi terbaru.