使用Restful API进行状态机转换

问题描述

我有一个概念性问题,那就是在静态API中在状态机内部提供可用转换的首选方式是什么。

假设我们有使用状态机操纵门的API:

doors state machine

我想提供休息端点来更新状态,如下所示:

PUT /doors/123/state

{
    "state": "Closed"
}

问题是,如何为客户提供有关特定门的可能过渡的数据。即如果门是locked,则只能转换为closed的状态。 我当时正在考虑在state添加一个终结点以列出过渡,但是我不确定这是一个好习惯。

GET /doors/123/state/transitions

{
    "availableTransitions": [
        "Closed"
    ]
}

还有更好的选择吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)