Al diseñar una API, nos encontramos con la pregunta de si una carga útil PUT debe contener la ID del recurso que se está actualizando.
Esto es lo que tenemos actualmente:
PUT /users/123 Payload: {name: "Adrian"}
Nuestro código de ruta extrae la ID del URI y continúa con la actualización.
Los primeros usuarios de nuestra API se preguntan por qué no permitimos ID en la carga útil:
PUT /users/123 Payload: {id: 123, name: "Adrian"}
La razón por la que no lo permitimos es porque la ID está duplicada, en la carga útil y el URI.
Pensando en esto un poco más, estamos acoplando el recurso al URI.
Si el URI no tiene la ID, se deberá modificar la carga útil:
PUT /no/id/here Payload: {name: "Adrian"} < What user???
¿Hay alguna razón para no hacerlo?
/users
(no es necesario agregar 'nuevo').