Projektując interfejs API, postawiliśmy pytanie, czy ładunek PUT powinien zawierać identyfikator aktualizowanego zasobu.
Oto, co obecnie mamy:
PUT /users/123 Payload: {name: "Adrian"}
Nasz kod trasy wyodrębnia identyfikator z identyfikatora URI i kontynuuje aktualizację.
Pierwsi użytkownicy naszego API pytają, dlaczego nie pozwalamy na identyfikatory w ładunku:
PUT /users/123 Payload: {id: 123, name: "Adrian"}
Nie zezwalamy na to, ponieważ identyfikator jest zduplikowany w ładunku i identyfikatorze URI.
Zastanawiając się nad tym, łączymy zasób z identyfikatorem URI.
Jeśli identyfikator URI nie ma identyfikatora, należy zmienić ładunek:
PUT /no/id/here Payload: {name: "Adrian"} < What user???
Czy są jakieś powody, aby tego nie robić?
/users
(nie ma potrzeby dodawania „nowego”).