假设我有machines
的表格,其中一列名为status
。这可以是active
,inactive
或discarded
。 discarded
计算机不再有用,仅用于交易目的。
现在假设我想discard
一台机器。由于这是一个条目更新,RESTful,这将是对PUT
的{{1}}请求。但是,由于这是一种非常特殊的更新,因此可能还会发生其他操作(例如,删除任何已分配的用户以及不执行的操作)。
那么这应该更像是/machines/:id
到POST
吗?
答案 0 :(得分:0)
我认为最通用的方法是将{ status: 'discarded' }
的机器对象POST到/machines/:id/
。
就个人而言,我更喜欢/machines/:id/discard
方法。它可能不完全符合规范,但过滤更清晰,更容易。例如,可能允许某些用户更新计算机但不允许更新计算机#34;它
答案 1 :(得分:0)
从严格的REST角度来看,您是否考虑过实施PATCH
?通过这种方式,您可以让它只更新该状态字段,然后将其绑定到更新所有必要的其他内容吗?
参考文献:
https://www.mnot.net/blog/2012/09/05/patch http://jasonsirota.com/rest-partial-updates-use-post-put-or-patch
答案 2 :(得分:0)
就个人而言,我认为当资源ID未知或与正在进行的更新无关时,应使用帖子。
这会使我特别使用的方法,因为你还有其他需要更新的状态类型
路径
/machines/id
讯息正文
{"status":"discarded"}