Giả sử tôi muốn có một tài nguyên RESTful cho mọi người, nơi khách hàng có thể chỉ định ID.
Một người trông như thế này: {"id": <UUID>, "name": "Jimmy"}
Bây giờ, khách hàng nên lưu (hoặc "PUT") nó như thế nào?
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}
- bây giờ chúng tôi có sự trùng lặp khó chịu này mà chúng tôi phải xác minh mọi lúc: ID trong nội dung có khớp với ID trong đường dẫn không?- Biểu diễn không đối xứng:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
trả lại{"id": <UUID>, "name": "Jimmy"}
- Không có ID trong nội dung - Chỉ ID ở vị trí:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
trả lại{"name": "Jimmy"}
- Không có loại nào
POST
có vẻ là một ý tưởng hay vì ID được tạo bởi khách hàng.
Các mẫu phổ biến và cách giải quyết nó là gì? ID chỉ ở vị trí có vẻ là cách đúng đắn nhất về mặt giáo điều, nhưng nó cũng khiến việc triển khai thực tế khó khăn hơn.