通过REST API设置状态

时间:2016-05-15 22:31:15

标签: api rest

是否存在向API使用者公开状态更新功能的约定?

我有一个/ orders端点,其中每个订单都可以有一些状态,例如: 1 - 已提交 2 - 待定 3 - 发货

客户可以提交订单,但员工最终会拥有自己的GUI来更改订单状态。

我想知道一个特定的订单,例如/orders/123,使用PUT /orders/123{state: 2}一起使用API​​会更好吗?

或者更好地展示一些便利函数,例如GET /orders/pending,它们将处理API使用者的设置状态?

1 个答案:

答案 0 :(得分:2)

通常的做法是使用GET请求作为只读数据访问,并PUT请求设置状态,更新和其他数据写入操作。

除了常见之外,这种做法还具有直观的附加好处,并且可以很好地传达API和客户端代码的意图。

但请注意,PUT动词实际上是指替换资源,而不是更新资源的任何单个属性。还有另一个HTTP动词 - PATCH - 这更适合您的情况。

我不想创建另一个HTTP动词引用的副本,而是想推荐给this tutorial,我发现它非常优秀和彻底。查看PUTPATCH动词,为您的实施做出决定。