Представьте, что у меня есть какой-то абстрактный ресурс, который может выглядеть следующим образом в json:
{
"id": 1,
"type": "A",
"size": 5
}
и пути к нему /my_api_path/resource/1
. Это своего рода ресурс, который из-за области проблемы не может быть атомарно изменен в целом. Например - изменение полей типа или размера - это atomi c, а попытка изменить оба - нет. Какой будет разумный способ обновления ресурса? Я думал о трех способах, но я не уверен, что является более идиоматическим c и разумным:
Возвращение некоторой ошибки, когда пользователь пытается PUT
изменения для не-атоми c комбинация полей.
Принятие неатомарности и изменение ресурса до тех пор, пока я не получу ошибку и возврат ресурса результата.
Добавление подресурса для каждого атомарно изменяемого комбинация полей.
Я думаю, что это не исчерпывающий список, и, тем не менее, я надеюсь, что может быть даже лучшее решение.
Несколько связанный с этим вопрос здесь: Лучшая практика для частичных обновлений в RESTful сервисе