Kode status HTTP untuk update dan delete?

Apa status kode yang harus saya tetapkan untuk UPDATE (MASUKAN) dan HAPUS (misalnya produk berhasil diperbarui)?

Larutan

Untuk PUT permintaan: HTTP 200 atau HTTP 204 harus menyiratkan "sumber daya diperbarui berhasil".

Untuk HAPUS permintaan: HTTP 200 atau HTTP 204 harus menyiratkan "sumber daya dihapus berhasil". HTTP 202 juga dapat kembali yang akan berarti bahwa instruksi telah diterima oleh server dan "sumber daya ditandai untuk penghapusan".

PUT

Jika sumber daya yang ada dimodifikasi, baik 200 (OK) atau 204 (Tanpa Isi) kode respon > HARUS dikirim untuk menunjukkan berhasil menyelesaikan permintaan.

DELETE

respon Yang sukses HARUS 200 (OK) jika respon mencakup entitas menggambarkan status, 202 (Diterima) jika tindakan belum diberlakukan, atau 204 (Tanpa Isi) jika tindakan yang telah diundangkan tetapi respon tidak termasuk suatu entitas.

Sumber: W3.org: HTTP/1.1 Metode Definisi

HTTP 200 OK: Standar respon untuk sukses HTTP permintaan. Sebenarnya respon akan tergantung pada permintaan metode yang digunakan.

HTTP 204 No Content: server berhasil diproses permintaan, tetapi tidak kembali ke konten

Sumber: Daftar kode status HTTP: 2xx Sukses

Komentar (17)

Jawaban singkat: untuk MENEMPATKAN dan MENGHAPUS, anda harus mengirim 200 (OK) atau 204 (Tanpa Isi).

Jawaban panjang: here's lengkap diagram keputusan (klik untuk memperbesar).

Sumber: https://github.com/for-GET/http-decision-diagram

Komentar (18)

Berikut adalah beberapa Tips:

HAPUS

  • 200 (jika anda ingin mengirim beberapa data tambahan di Respon) atau 204 (dianjurkan).
  • 202 Operasi dihapus belum dilakukan belum.
  • Jika ada's apa-apa untuk menghapus, menggunakan 204 atau 404 (MENGHAPUS operasi idempotent, menghapus aplikasi yang sudah dihapus item operasi sukses, sehingga anda dapat kembali 204tapi itu's benar bahwa idempotent doesn't selalu berarti respon yang sama)

kesalahan Lain:

  • 400 Bad Request (kesalahan syntax atau buruk query aneh tapi mungkin).
  • 401 yang tidak Sah kegagalan Otentikasi
  • 403 Dilarang: kegagalan Otorisasi atau Aplikasi tidak valid ID.
  • 405 Tidak Diperbolehkan. Yakin.
  • 409 Konflik Sumber daya dapat dimungkinkan dalam sistem yang kompleks.
  • Dan 501, 502 dalam kasus kesalahan.

PUT

Jika anda're memperbarui elemen dari koleksi

  • 200/204 dengan alasan yang sama seperti DELETE di atas.
  • 202 jika operasi belum dilakukan belum.

direferensikan elemen doesn't ada:

  • MASUKAN yang dapat 201 (jika anda membuat elemen karena itu adalah perilaku anda)
  • 404 Jika anda don't ingin membuat elemen melalui DIMASUKKAN.
  • 400 Bad Request (kesalahan syntax atau buruk query lebih umum daripada dalam kasus DELETE).
  • 401 yang tidak Sah
  • 403 Dilarang: kegagalan Otentikasi atau Aplikasi tidak valid ID.
  • 405 Tidak Diperbolehkan. Yakin.
  • 409 Konflik Sumber daya dapat dimungkinkan dalam sistem yang kompleks, seperti yang di HAPUS.
  • 422 Unprocessable badan Ini membantu untuk membedakan antara "Bad request" (misalnya ping XML/JSON) dan tidak valid nilai-nilai bidang
  • Dan 501, 502 dalam kasus kesalahan.
Komentar (5)

RFC 2616 menjelaskan yang kode status untuk menggunakan.

Dan tidak, itu's tidak selalu 200.

Komentar (0)

Selain 200 dan 204, 205 (Isi Ulang) bisa menjadi respon yang valid.

server telah memenuhi permintaan dan agen pengguna HARUS mengatur ulang tampilan dokumen yang disebabkan permintaan yang akan dikirim ... [misalnya] kliring bentuk di mana input yang diberikan.

Komentar (0)

Karena pertanyaan menggali jika HAPUS "harus" kembali 200 vs 204 perlu mempertimbangkan bahwa beberapa orang merekomendasikan kembali suatu entitas dengan link sehingga preferensi untuk 200.

"Bukannya kembali 204 (Tanpa Isi), API harus membantu dan menyarankan tempat untuk pergi. Dalam contoh ini saya pikir salah satu yang jelas link untuk berikan untuk" 'somewhere.com/container/' (minus 'sumber daya') "- wadah yang klien hanya dihapus sumber daya. Mungkin klien ingin hapus lebih banyak sumber daya, sehingga akan membantu link."

http://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/

Jika klien mengalami 204 respon, hal ini dapat menyerah, pergi ke titik masuk dari API, atau kembali ke sebelumnya sumber kunjungi. Tidak adalah pilihan yang sangat baik.

Secara pribadi saya tidak akan mengatakan 204 adalah salah (tidak penulis; katanya "mengganggu") karena baik caching pada sisi klien memiliki banyak manfaat. Yang terbaik adalah konsisten dengan cara baik.

Komentar (0)

Pada bulan juni 2014 RFC7231 obsoletes RFC2616. Jika anda melakukan SISANYA melalui HTTP kemudian RFC7231 menjelaskan apa perilaku yang diharapkan dari GET, PUT, POST dan HAPUS

Komentar (0)

Di sini's beberapa kode status, yang harus anda ketahui untuk jenis pengetahuan.

1XX Informasi Tanggapan

  • 100 Terus
  • 101 Switching Protokol
  • 102 Pengolahan
  • 103 Awal Petunjuk

2XX Sukses

  • 200 OK
  • 201 Dibuat
  • 202 Diterima
  • 203 Non-Otoritatif Informasi
  • 204 Tidak ada Konten
  • 205 Reset Content
  • 206 Konten Parsial
  • 207 Multi-Status
  • 208 Sudah Dilaporkan
  • 226 IM Digunakan

3XX Pengalihan

  • 300 Beberapa Pilihan
  • 301 Pindah secara Permanen
  • 302 Ditemukan
  • 303 Lihat hotel Lainnya
  • 304 Tidak Dimodifikasi
  • 305 Gunakan Proxy
  • 306 Switch Proxy
  • 307 Sementara Redirect
  • 308 Redirect Permanen

4XX kesalahan Klien

  • 400 Bad Request
  • 401 yang tidak Sah
  • 402 Pembayaran yang Diperlukan
  • 403 Dilarang
  • 404 Tidak Ditemukan
  • 405 Metode Tidak Diizinkan
  • 406 Tidak dapat Diterima
  • 407 Otentikasi Proxy yang Diperlukan
  • 408 Request Timeout
  • 409 Konflik
  • 410 Pergi
  • 411 Suhu udara yang Diperlukan
  • 412 Prasyarat Gagal
  • 413 Muatan yang Terlalu Besar
  • 414 URI Terlalu Lama
  • 415 Didukung Jenis Media
  • 416 Range Tidak dapat dipenuhi
  • 417 Harapan Gagal
  • 418 I'm teko
  • 420 Kegagalan Metode
  • 421 Salah kirim Permintaan
  • 422 Unprocessable Entitas
  • 423 Terkunci
  • 424 Gagal Ketergantungan
  • 426 meng-Upgrade Diperlukan
  • 428 Prasyarat yang Diperlukan
  • 429 Terlalu Banyak Permintaan
  • 431 Permintaan Field Header Terlalu Besar
  • 451 tidak Tersedia Karena Alasan Hukum

5XX kesalahan Server

  • 500 Internal Server error
  • 501 Tidak Dilaksanakan
  • 502 Bad Gateway
  • 503 Layanan tidak Tersedia
  • 504 gateway Timeout
  • 505 versi Http tidak didukung
  • 506 Varian Juga bernegosiasi
  • 507 Penyimpanan tidak Cukup
  • 508 Loop Detected
  • 510 Tidak Diperpanjang
  • 511 Otentikasi Jaringan yang Diperlukan
Komentar (0)

Hypertext Transfer Protocol (HTTP/1.1): Semantik dan Konten

Menjelaskan secara singkat! Tahu lebih lanjut tentang kode status

Komentar (0)

Ketika sumber daya yang dimodifikasi, kode respon harus 200 ("OK"). Jika sumber daya negara perubahan dalam cara bahwa perubahan URI dari sumber daya (misalnya, akun pengguna berganti nama), yang kode respon adalah 301 ("Pindah secara Permanen") dan Lokasi header harus memberikan URI baru.

Ketika sebuah obyek dihapus, kode respon harus 200 ("OK").

Ikuti link di bawah ini untuk rincian lebih lanjut -- kode status untuk istirahat

Komentar (0)