Memikirkan hal ini lagi, kami menggabungkan sumber daya ke URI.
Jika URI tidak memiliki ID, payload perlu diubah:
PUT / no / id / di sini Payload: {name: "Adrian"} <Pengguna apa ???
Apakah ada alasan untuk tidak melakukannya?
Jawaban untuk pertanyaan ini tergantung pada apakah Anda ingin mengizinkan klien untuk mengubah ID?
Jika klien dapat mengubah ID, melalui PUT, maka URI untuk sumber daya akan berubah, dan Anda harus memberikan 301 Pindah Secara Permanen kapan saja sumber daya mengakses URI yang lama.
Jadi misalnya Anda mulai dengan sumber daya di
/users/123
dan klien PUT berikut ini ke sumber daya
{id: 222, name: "Adrian"}
sumber daya telah diperbarui dan URI-nya sekarang
/users/222
The Location
lapangan di respon PUT harus berisi URI baru, dan jika Anda pergi ke /users/123
Anda harus mendapatkan 301
respon dengan Lokasi lapangan menunjuk ke baru /users/222
sumber daya.
Dalam kebanyakan kasus, Anda sebenarnya tidak ingin klien dapat mengubah ID, karena ini bisa menjadi sangat berantakan dengan cepat. Dalam hal ini ID adalah sesuatu yang hanya dapat diubah oleh server, dan Anda harus meninggalkannya dari tubuh PUT, karena klien tidak dapat memperbarui keadaan ini.
Jika Anda PUT suatu kebutuhan untuk URI berbeda pada sumber daya yang sama, katakanlah
/users/adian_lync
maka jika sumber daya itu tidak ada server harus membuat dan membuat dan ID ketika sedang melakukannya
/users
(tidak perlu menambahkan 'baru').