Katakanlah saya ingin memiliki sumber daya RESTful untuk orang-orang, di mana klien dapat menetapkan ID.
Seseorang terlihat seperti ini: {"id": <UUID>, "name": "Jimmy"}
Sekarang, bagaimana cara klien menyimpan (atau "PUT") itu?
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}- sekarang kita memiliki duplikasi buruk yang harus kita verifikasi setiap saat: Apakah ID di badan cocok dengan yang ada di jalur?- Representasi asimetris:
PUT /person/UUID {"name": "Jimmy"}GET /person/UUIDkembali{"id": <UUID>, "name": "Jimmy"}
- Tidak ada ID di badan - ID hanya di lokasi:
PUT /person/UUID {"name": "Jimmy"}GET /person/UUIDkembali{"name": "Jimmy"}
- Tidak ada jenis
POSTtampaknya seperti ide yang baik karena ID yang dihasilkan oleh klien.
Apa pola umum dan cara mengatasinya? ID yang hanya berada di lokasi tampaknya merupakan cara yang paling benar secara dogmatis, tetapi ini juga mempersulit penerapan praktis.