Разрабатывая API, мы столкнулись с вопросом, должна ли полезная нагрузка PUT содержать идентификатор обновляемого ресурса.
Вот что у нас сейчас есть:
PUT /users/123 Payload: {name: "Adrian"}
Наш код маршрута извлекает идентификатор из URI и продолжает обновление.
Первые пользователи нашего API задаются вопросом, почему мы не разрешаем ID в полезной нагрузке:
PUT /users/123 Payload: {id: 123, name: "Adrian"}
Причина, по которой мы этого не допустили, заключается в том, что идентификатор дублируется в полезной нагрузке и URI.
Размышляя об этом еще немного, мы связываем ресурс с URI.
Если URI не имеет идентификатора, необходимо изменить полезную нагрузку:
PUT /no/id/here Payload: {name: "Adrian"} < What user???
Есть ли причины не делать этого?
/users
(нет необходимости добавлять «новый»).