Я понимаю, как использовать REST для того, чтобы сделать общие взаимодействия объекта - использование имен URL для отображения на объекты и глаголы HTTP для отображения на действия с теми объектами. Но каков общепринятый способ посмотреть на "действия" больше как RPC?
Например, скажем, я хочу отправить команду за устройством для сброса? Нет никакого реального "объекта" здесь, или сделайте я делаю что-то как POST к http://mydevice/device/reset?
/ device / reset
или / system / reset
в порядке.
«Шаблон проектирования» REST не побуждает вас НЕ использовать какие-либо глаголы .. Вы можете:
POST http://mydevice/system/state
<stateType>RESET</stateType>
Информация, связанная с данной:
Я не думаю, что это тот случай, когда нужно использовать POST. Действие "RESET" является идемпотентным действием (если вы вызовете его n раз, вы всегда будете получать один и тот же результат), поэтому IMHO вам следует использовать вызов PUT вместо POST (поскольку POST не является идемпотентным).
Также, поскольку вы размещаете ресурс, вы можете использовать
PUT http://system
<device>
<status>RESET</status>
</device>
или
PUT http://system/status/reset
Но я думаю, что первый вариант "более спокойный", поскольку вы размещаете ресурс, в то время как во втором случае вы просто используете URL.
Я обычно называю объект «система» или что-то в этом роде. Итак, вы делаете "/ system / reset". Вы выбрали устройство, и оно тоже работает.
Но да, я обычно считаю эти типы действий обновлениями, в которых используется метод POST. Итак, я думаю, вы правы, отправив POST в / device / reset