REST - в атомах c может быть изменена только часть ресурса - PullRequest
0 голосов
/ 06 февраля 2020

Представьте, что у меня есть какой-то абстрактный ресурс, который может выглядеть следующим образом в json:

{
    "id": 1,
    "type": "A",
    "size": 5
}

и пути к нему /my_api_path/resource/1. Это своего рода ресурс, который из-за области проблемы не может быть атомарно изменен в целом. Например - изменение полей типа или размера - это atomi c, а попытка изменить оба - нет. Какой будет разумный способ обновления ресурса? Я думал о трех способах, но я не уверен, что является более идиоматическим c и разумным:

  1. Возвращение некоторой ошибки, когда пользователь пытается PUT изменения для не-атоми c комбинация полей.

  2. Принятие неатомарности и изменение ресурса до тех пор, пока я не получу ошибку и возврат ресурса результата.

  3. Добавление подресурса для каждого атомарно изменяемого комбинация полей.

Я думаю, что это не исчерпывающий список, и, тем не менее, я надеюсь, что может быть даже лучшее решение.

Несколько связанный с этим вопрос здесь: Лучшая практика для частичных обновлений в RESTful сервисе

...