Apakah ada sesuatu yang non-TENANG tentang memberikan parameter ke permintaan HTTP DELETE?
Skenario saya adalah saya memodelkan "Anda yakin ingin menghapusnya?" skenario. Dalam beberapa kasus, keadaan sumber daya menunjukkan bahwa penghapusan yang diminta mungkin tidak valid. Anda mungkin dapat membayangkan sendiri beberapa skenario di mana konfirmasi penghapusan diperlukan
Solusi yang kami adopsi adalah meneruskan parameter ke permintaan hapus untuk menunjukkan bahwa tidak apa-apa untuk melanjutkan penghapusan ("? Force_delete = true")
misalnya
DELETE http://server/resource/id?force_delete=true
Saya percaya bahwa itu masih tenang sejak:
(a) Semantik DELETE tidak sedang diubah - pengguna masih dapat mengirim permintaan DELETE normal tetapi ini mungkin gagal dengan 409 dan badan tanggapan akan menjelaskan alasannya. Saya katakan mungkin gagal karena (karena alasan tidak layak dijelaskan) pada beberapa kesempatan tidak ada alasan untuk meminta pengguna.
(B) Tidak ada dalam disertasi Roy untuk menyarankan bahwa itu bertentangan dengan semangat REST - mengapa akan ada karena HTTP hanya satu implementasi dari REST jadi mengapa melewati parameter HTTP penting
Dapatkah seseorang mengarahkan saya pada pernyataan definitif yang mendukung alasan mengapa ini tidak tenang?
Pada pertanyaan terkait, jika pengguna tidak menentukan force_delete maka saya kembali 409 Conflict
- apakah itu kode respons yang paling tepat?
Mengikuti
Setelah beberapa penelitian lebih lanjut, saya berpikir bahwa menambahkan parameter ke DELETE dapat melanggar beberapa prinsip.
Yang pertama adalah bahwa implementasi mungkin melanggar "Uniform Interface" (lihat bagian 5.1.5 disertasi Roy
Dengan menambahkan 'force_delete' kami menambahkan kendala tambahan ke metode DELETE yang sudah didefinisikan dengan baik. Batasan ini hanya berarti bagi kita.
Anda juga bisa berpendapat bahwa itu melanggar "5.1.2 Client-Server" karena dialog konfirmasi benar-benar menjadi perhatian UI dan sekali lagi tidak semua klien ingin mengonfirmasi penghapusan.
Saran siapa pun?