2015-04-08 3 views
1

Скажем, у меня есть таблица для machines, а один из столбцов называется status. Это может быть active, inactive, или discarded. Машина discarded больше не полезна и используется только для транзакций.Реализация RESTful для «архивирования» записи

Предположим, теперь я хочу discard машина. Поскольку это обновление для записи, RESTfully, это будет PUT запрос /machines/:id. Однако, поскольку это очень особый вид обновления, могут быть и другие операции, которые произойдут (например, удалить всех назначенных пользователей, а что нет).

Это должно быть больше похоже на POST на /machines/:id/discard?

ответ

0

Из строгой перспективы REST вы считаете, что используете PATCH? Таким образом, вы можете обновить только это поле статуса, а затем привязать его к обновлению всего остального, что необходимо?

Ссылка:

https://www.mnot.net/blog/2012/09/05/patch http://jasonsirota.com/rest-partial-updates-use-post-put-or-patch

0

Я думаю, что наиболее общим способом будет POST объект Machine с { status: 'discarded' } до /machines/:id/.

Лично я предпочел бы подход /machines/:id/discard. Это может быть не совсем точно так же, как в спецификации, но это более ясно и легче фильтровать. Например, некоторым пользователям может быть разрешено обновлять машину, но не «архивировать» ее.

0

Лично я думаю, что пост должен быть использован, когда ресурс Id либо неизвестен, либо не относятся к обновлению производится.

Это сделало бы поставить метод, который я использовал бы тем более, что у вас есть другие типы статусов, которые также должны быть обновлены

путь

/machines/id 

тело Сообщение

{"status":"discarded"} 
Смежные вопросы