ฉันกำลังสร้างเซิร์ฟเวอร์ที่อนุญาตให้ลูกค้าจัดเก็บวัตถุ วัตถุเหล่านั้นถูกสร้างอย่างสมบูรณ์ที่ฝั่งไคลเอ็นต์พร้อมด้วย ID วัตถุที่ถาวรตลอดอายุการใช้งานของวัตถุ
ฉันได้กำหนด API เพื่อให้ลูกค้าสามารถสร้างหรือปรับเปลี่ยนวัตถุโดยใช้ PUT:
PUT /objects/{id} HTTP/1.1
...
{json representation of the object}
{id} เป็น ID อ็อบเจ็กต์ดังนั้นจึงเป็นส่วนหนึ่งของ Request-URI
ตอนนี้ฉันกำลังพิจารณาให้ลูกค้าสร้างวัตถุโดยใช้ POST:
POST /objects/ HTTP/1.1
...
{json representation of the object, including ID}
เนื่องจาก POST มีความหมายว่าเป็นการดำเนินการ "ผนวก" ฉันไม่แน่ใจว่าจะทำอย่างไรในกรณีที่วัตถุมีอยู่แล้ว ฉันควรปฏิบัติต่อคำขอเป็นการร้องขอแก้ไขหรือฉันควรส่งคืนรหัสข้อผิดพลาด (อัน) หรือไม่