สมมติว่าฉันต้องการมีทรัพยากร RESTful สำหรับผู้คนโดยที่ลูกค้าสามารถกำหนด ID ได้
บุคคลมีลักษณะดังนี้: {"id": <UUID>, "name": "Jimmy"}
ตอนนี้ลูกค้าควรบันทึก (หรือ "PUT") อย่างไร
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}
- ตอนนี้เรามีการทำซ้ำที่น่ารังเกียจซึ่งเราต้องตรวจสอบตลอดเวลา: ID ในร่างกายตรงกับที่อยู่ในเส้นทางหรือไม่?- การแสดงแบบไม่สมมาตร:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
ผลตอบแทน{"id": <UUID>, "name": "Jimmy"}
- ไม่มีรหัสในเนื้อหา - เฉพาะในตำแหน่ง:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
ผลตอบแทน{"name": "Jimmy"}
- ชนิดของการไม่มี
POST
ดูเหมือนความคิดที่ดีตั้งแต่ ID ถูกสร้างขึ้นโดยลูกค้า
รูปแบบทั่วไปและวิธีการแก้ปัญหาคืออะไร? รหัสเฉพาะในสถานที่ดูเหมือนจะเป็นวิธีที่ถูกต้องที่สุด แต่ยังทำให้การนำไปใช้จริงยากขึ้น