小编Gal*_*lex的帖子

如何为状态机或有限自动机实现RESTful资源

我是一个Rails和REST新手,我正在试图找出如何最好地公开由具有状态机的域对象支持的资源(换句话说是有限自动机).

我已经看到了许多用于使模型类成为状态机的宝石,例如aasm,过渡,工作流,但它们都没有记录它们如何在面向资源的控制器中实际使用的示例.它们似乎都暗示状态转换是由"事件"触发的,这实际上是一种方法调用.我对这意味着的一些问题是:

  1. 更新操作(PUT方法)不合适,因为PUT被认为是幂等的.唯一可能的是,如果州是作为代表的一部分发送的.这与"事件"不一致.它是否正确?
  2. 由于事件不是幂等的,因此必须使用POST.但是,到哪个资源?每个可能的事件都有子资源吗?或者,是否有一个(/ updatestate)将触发事件和事件的任何参数作为其表示?
  3. 由于资源的状态是由另一个资源可能触发的事件修改的,因此create action是否应接受对state属性(或依赖于状态机的任何其他属性)的更改?
  4. [更新的问题]在UI中公开转换的好方法是什么?由于事件不是状态,因此似乎允许更新状态属性(以及依赖于状态转换的任何其他属性)是没有意义的.这是否意味着在更新操作中应忽略这些属性?

rest ruby-on-rails state-machine

27
推荐指数
3
解决办法
5600
查看次数

标签 统计

rest ×1

ruby-on-rails ×1

state-machine ×1