Beim Entwurf einer API haben wir uns die Frage gestellt, ob eine PUT-Payload die ID der zu aktualisierenden Ressource enthalten soll.
Dies ist, was wir derzeit haben:
PUT /users/123 Payload: {name: "Adrian"}
Unser Routencode extrahiert die ID aus der URI und fährt mit der Aktualisierung fort.
Die ersten Benutzer unserer API fragen sich, warum wir keine ID in der Nutzlast zulassen:
PUT /users/123 Payload: {id: 123, name: "Adrian"}
Der Grund, warum wir dies nicht zugelassen haben, ist, dass die ID in der Nutzlast und im URI dupliziert ist.
Wenn wir uns das genauer überlegen, verknüpfen wir die Ressource mit dem URI.
Wenn der URI nicht über die ID verfügt, muss die Nutzlast geändert werden:
PUT /no/id/here Payload: {name: "Adrian"} < What user???
Gibt es Gründe, dies nicht zu tun?
/users
(keine Notwendigkeit, 'neu' hinzuzufügen).