Digamos que quiero tener un recurso RESTful para personas, donde el cliente pueda asignar ID.
Una persona se ve así: {"id": <UUID>, "name": "Jimmy"}
Ahora bien, ¿cómo debería guardarlo (o "PONER") el cliente?
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}
- ahora tenemos esta desagradable duplicación que tenemos que verificar todo el tiempo: ¿La identificación en el cuerpo coincide con la de la ruta?- Representación asimétrica:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
devoluciones{"id": <UUID>, "name": "Jimmy"}
- No hay ID en el cuerpo - ID solo en la ubicación:
PUT /person/UUID {"name": "Jimmy"}
GET /person/UUID
devoluciones{"name": "Jimmy"}
- No
POST
parece una buena idea, ya que el cliente genera la identificación.
¿Cuáles son los patrones comunes y las formas de resolverlo? Las identificaciones solo en la ubicación parece la forma más dogmáticamente correcta, pero también dificulta la implementación práctica.