Розробляючи API, ми зіткнулися з питанням, чи повинен PUT корисний набір містити ідентифікатор оновленого ресурсу.
Ось що ми маємо:
PUT /users/123 Payload: {name: "Adrian"}
Наш код маршруту дістає ідентифікатор з URI і продовжує оновлення.
Перші користувачі нашого API запитують, чому ми не допускаємо ідентифікатор у корисному навантаженні:
PUT /users/123 Payload: {id: 123, name: "Adrian"}
Причина, яку ми цього не допустили, полягає в тому, що ідентифікатор копіюється у корисному навантаженні та URI.
Думаючи про це ще трохи, ми підключаємо ресурс до URI.
Якщо URI не має ідентифікатора, корисне навантаження потрібно змінити:
PUT /no/id/here Payload: {name: "Adrian"} < What user???
Чи є причини, щоб цього не зробити?
/users
(немає необхідності додавати "нове").