Ich baue einen Server, auf dem Clients Objekte speichern können. Diese Objekte werden vollständig auf der Client-Seite erstellt, komplett mit Objekt-IDs, die für die gesamte Lebensdauer des Objekts dauerhaft sind.
Ich habe die API so definiert, dass Clients mit PUT Objekte erstellen oder ändern können:
PUT /objects/{id} HTTP/1.1
...
{json representation of the object}
Die {id} ist die Objekt-ID, also ein Teil der Request-URI.
Jetzt überlege ich auch, ob ich den Kunden erlauben soll, das Objekt per POST zu erstellen:
POST /objects/ HTTP/1.1
...
{json representation of the object, including ID}
Da POST als "Append"-Operation gemeint ist, bin ich nicht sicher, was zu tun ist, wenn das Objekt bereits vorhanden ist. Sollte ich die Anforderung als Änderungsanforderung behandeln oder sollte ich einen Fehlercode zurückgeben (welcher)?