การออกแบบ API เราได้พบกับคำถามว่า PUT payload ควรมี ID ของทรัพยากรที่กำลังอัปเดตหรือไม่
นี่คือสิ่งที่เรามีอยู่ในปัจจุบัน:
PUT /users/123 Payload: {name: "Adrian"}
รหัสเส้นทางของเราจะดึง ID จาก URI และดำเนินการต่อด้วยการอัปเดต
ผู้ใช้คนแรกของ API ของเราตั้งคำถามว่าทำไมเราไม่อนุญาต ID ในส่วนของข้อมูล:
PUT /users/123 Payload: {id: 123, name: "Adrian"}
เหตุผลที่เราไม่อนุญาตเพราะเป็นรหัสซ้ำใน payload และ URI
เมื่อคิดถึงสิ่งนี้อีกแล้วเรากำลังเชื่อมโยงทรัพยากรเข้ากับ URI
หาก URI ไม่มี ID จะต้องแก้ไขส่วนของข้อมูล:
PUT /no/id/here Payload: {name: "Adrian"} < What user???
มีเหตุผลอะไรบ้างที่จะไม่ทำ?
/users
(ไม่จำเป็นต้องเพิ่ม 'ใหม่')