RFC 7231
Успешное PUT данного представления предполагает, что последующее GET на том же целевом ресурсе приведет к отправке эквивалентного представления в 200 (OK) ответ.
Идентификатор ресурса и его представление не обязаны согласовываться каким-либо семантически значимым образом, во многом так же, как не требуется согласовывать полный путь к файлус его содержимым, почти так же, как значение в словаре не требуется для согласования с его ключом.
GET /objects/1
200 OK
{ "id": 2 }
Что касается HTTP, то это совершенно верно, так же, как это было бы для
GET /fbb477c8-e2f3-4581-9c44-27305de6ebee
200 OK
{ "id": 2 }
Ключевой элемент стандарта, на который нужно опираться, заключается в следующем:
Исходный сервер ДОЛЖЕН проверить соответствие представления PUT любым ограничениям, которые имеет сервердля целевого ресурса, который не может или не будет изменен PUT.
В правилах сказано, чтоt любое представление от PUT
до /fbb477c8-e2f3-4581-9c44-27305de6ebee
должно составлять около id:1
и отклонять как несогласованные запросы, которые не удовлетворяют этому инварианту. 409 Конфликт - это обычный код состояния, используемый в этом случае.
И, конечно, это в равной степени относится к идентификатору /objects/1
.