Kode status apa yang harus saya tetapkan untuk UPDATE
( PUT
) dan DELETE
(mis. Produk berhasil diperbarui)?
Kode status apa yang harus saya tetapkan untuk UPDATE
( PUT
) dan DELETE
(mis. Produk berhasil diperbarui)?
Jawaban:
Untuk permintaan PUT : HTTP 200 atau HTTP 204 harus menyiratkan "sumber daya berhasil diperbarui".
Untuk permintaan DELETE : HTTP 200 atau HTTP 204 harus menyiratkan "sumber daya berhasil dihapus". HTTP 202 juga dapat dikembalikan yang akan menyiratkan bahwa instruksi diterima oleh server dan "sumber daya ditandai untuk dihapus".
Jika sumber daya yang ada diubah, baik kode respons 200 (OK) atau 204 (Tidak Ada Konten)> HARUS dikirim untuk mengindikasikan keberhasilan penyelesaian permintaan.
Respons yang berhasil HARUS menjadi 200 (OK) jika respons mencakup entitas yang menggambarkan status, 202 (Diterima) jika tindakan belum diberlakukan, atau 204 (Tidak Ada Konten) jika tindakan telah diberlakukan tetapi respons tidak termasuk sebuah entitas.
Sumber: W3.org: Definisi Metode HTTP / 1.1
HTTP 200 OK: Respons standar untuk permintaan HTTP yang berhasil. Respons aktual akan bergantung pada metode permintaan yang digunakan.
HTTP 204 Tidak Ada Konten: Server berhasil memproses permintaan, tetapi tidak mengembalikan konten apa pun
Jawaban singkat: untuk PUT dan DELETE, Anda harus mengirim 200 (OK) atau 204 (Tidak Ada Konten).
Jawaban panjang: inilah diagram keputusan lengkap (klik untuk memperbesar).
Inilah beberapa Tips:
MENGHAPUS
200 (jika Anda ingin mengirim beberapa data tambahan dalam Respons) atau 204 (disarankan).
202 Operasi yang dihapus belum dilakukan.
Jika tidak ada yang dihapus, gunakan 204 atau 404 (Operasi HAPUS idempoten, hapus item yang sudah dihapus berhasil operasi , sehingga Anda dapat mengembalikan 204 , tetapi memang benar bahwa idempoten tidak selalu menyiratkan respons yang sama)
Kesalahan lain:
- 400 Bad Request (Sintaks salah format atau kueri buruk aneh tapi mungkin).
- 401 Kegagalan otentikasi tidak sah
- 403 Forbidden : Kegagalan otorisasi atau ID Aplikasi tidak valid.
- 405 Tidak Diizinkan . Tentu.
- 409 Konflik Sumber Daya dapat dimungkinkan dalam sistem yang kompleks.
- Dan 501 , 502 jika terjadi kesalahan.
TARUH
Jika Anda memperbarui elemen koleksi
- 200/204 dengan alasan yang sama seperti DELETE di atas.
- 202 jika operasi belum dilakukan.
Elemen yang dirujuk tidak ada:
- PUT bisa 201 (jika Anda membuat elemen karena itu adalah perilaku Anda)
404 Jika Anda tidak ingin membuat elemen melalui PUT.
400 Permintaan Buruk (Sintaks salah format atau kueri buruk lebih umum daripada dalam kasus DELETE).
- 401 Tidak Resmi
- 403 Forbidden : Kegagalan otentikasi atau ID Aplikasi tidak valid.
- 405 Tidak Diizinkan . Tentu.
- 409 Konflik Sumber Daya dapat dimungkinkan dalam sistem yang kompleks, seperti pada DELETE.
- 422 Entitas yang tidak dapat diproses Ini membantu untuk membedakan antara "Permintaan salah" (mis. XML / JSON yang salah bentuk) dan nilai bidang tidak valid
- Dan 501 , 502 jika terjadi kesalahan.
RFC 2616 menjelaskan kode status mana yang digunakan .
Dan tidak, tidak selalu 200.
Selain 200 dan 204, 205 (Reset Konten) bisa menjadi respons yang valid.
Server telah memenuhi permintaan dan agen pengguna HARUS mengatur ulang tampilan dokumen yang menyebabkan permintaan untuk dikirim ... [misalnya] menghapus formulir di mana input diberikan.
Karena pertanyaannya menyelidiki apakah DELETE "harus" mengembalikan 200 vs 204 , ada baiknya mempertimbangkan bahwa beberapa orang merekomendasikan pengembalian entitas dengan tautan sehingga preferensi untuk 200 .
"Alih-alih mengembalikan 204 (Tanpa Konten), API harusnya membantu dan menyarankan tempat untuk dikunjungi. Dalam contoh ini saya pikir satu tautan yang jelas untuk diberikan adalah ke" 'somewhere.com/container/' (minus 'resource') "- wadah tempat klien baru saja menghapus sumber daya. Mungkin klien ingin menghapus lebih banyak sumber daya, sehingga akan menjadi tautan yang bermanfaat. "
http://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/
Jika klien menemukan respons 204, ia bisa menyerah, pergi ke titik masuk API, atau kembali ke sumber daya sebelumnya yang dikunjungi. Tidak ada pilihan yang baik.
Secara pribadi saya tidak akan mengatakan 204 salah (begitu pula penulisnya; ia mengatakan "menjengkelkan") karena caching yang baik di sisi klien memiliki banyak manfaat. Yang terbaik adalah konsisten.
Ini beberapa kode status, yang harus Anda ketahui untuk pengetahuan Anda.
- 100 Lanjutkan
- 101 Protokol Pengalihan
- 102 Memproses
- 103 Petunjuk Awal
- 200 OK
- 201 Dibuat
- 202 Diterima
- 203 Informasi Non-Resmi
- 204 Tidak Ada Konten
- 205 Atur Ulang Konten
- 206 Konten Sebagian
- 207 Multi-Status
- 208 Sudah Dilaporkan
- 226 IM Digunakan
- 300 Pilihan Ganda
- 301 Dipindahkan Secara Permanen
- 302 Ditemukan
- 303 Lihat Lainnya
- 304 Tidak Dimodifikasi
- 305 Gunakan Proxy
- 306 Beralih Proksi
- 307 Redirect Sementara
- 308 Pengalihan Permanen
- 400 Permintaan Buruk
- 401 Tidak Resmi
- 402 Diperlukan Pembayaran
- 403 Dilarang
- 404 Tidak Ditemukan
- 405 Metode Tidak Diizinkan
- 406 Tidak Dapat Diterima
- Diperlukan 407 Otentikasi Proksi
- 408 Batas Waktu Permintaan
- 409 Konflik
- 410 Hilang
- 411 Panjang Diperlukan
- 412 Prasyarat Gagal
- 413 Payload Terlalu Besar
- 414 URI Terlalu Panjang
- 415 Jenis Media yang Tidak Didukung
- 416 Range Tidak Memuaskan
- 417 Harapan Gagal
- 418 Saya seorang teko
- 420 Kegagalan Metode
- 421 Permintaan Salah Arah
- 422 Entitas yang Tidak Dapat Diproses
- 423 Terkunci
- 424 Dependensi Gagal
- Diperlukan 426 Peningkatan
- Diperlukan 428 Prasyarat
- 429 Terlalu Banyak Permintaan
- 431 Bidang Judul Permintaan Terlalu Besar
- 451 Tidak Tersedia Untuk Alasan Hukum
- 500 Galat Server Internal
- 501 Tidak Diimplementasikan
- 502 Gerbang Buruk
- 503 Layanan Tidak Tersedia
- 504 Timeout gerbang
- 505 Versi Http tidak didukung
- 506 Varient Juga bernegosiasi
- 507 Penyimpanan Tidak Memadai
- 508 Loop Terdeteksi
- 510 Tidak Diperpanjang
- 511 Diperlukan Otentikasi Jaringan
Ketika sumber daya diubah, kode respons harus 200 ("OK") . Jika keadaan sumber daya berubah dengan cara yang mengubah URI ke sumber daya (misalnya, akun pengguna diubah namanya), kode responsnya adalah 301 (“Dipindahkan Secara Permanen”) dan header Lokasi harus menyediakan URI yang baru.
Ketika suatu objek dihapus, kode responsnya harus 200 ("OK").
Ikuti tautan di bawah ini untuk detail lebih lanjut - kode status untuk istirahat