使用Restful API的状态机转换

使用Restful API的状态机转换,rest,state-machine,Rest,State Machine,我有一个概念性的问题,即在RESTfulAPI中,在状态机内部提供可用转换的首选方式是什么 假设我们有一个用状态机操纵门的API: 我设想为更新状态提供rest端点,如下所示: PUT /doors/123/state { "state": "Closed" } 问题是,如何为客户机的特定门提供有关可能转换的数据。也就是说,如果车门被锁定,则只能进入关闭的状态。 我曾考虑在状态下添加另一个端点来列出转换,但我不确定这是否是一个好的做法 GET

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

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

我设想为更新状态提供rest端点,如下所示:

PUT /doors/123/state

{
    "state": "Closed"
}
问题是,如何为客户机的特定门提供有关可能转换的数据。也就是说,如果车门被
锁定
,则只能进入
关闭的状态
。 我曾考虑在
状态下添加另一个端点来列出转换,但我不确定这是否是一个好的做法

GET /doors/123/state/transitions

{
    "availableTransitions": [
        "Closed"
    ]
}
还有更好的选择吗