是否存在向API使用者公开状态更新功能的约定?
我有一个/ orders端点,其中每个订单都可以有一些状态,例如: 1 - 已提交 2 - 待定 3 - 发货
客户可以提交订单,但员工最终会拥有自己的GUI来更改订单状态。
我想知道一个特定的订单,例如/orders/123
,使用PUT /orders/123
与{state: 2}
一起使用API会更好吗?
或者更好地展示一些便利函数,例如GET /orders/pending
,它们将处理API使用者的设置状态?
答案 0 :(得分:2)
通常的做法是使用GET
请求作为只读数据访问,并PUT
请求设置状态,更新和其他数据写入操作。
除了常见之外,这种做法还具有直观的附加好处,并且可以很好地传达API和客户端代码的意图。
但请注意,PUT
动词实际上是指替换资源,而不是更新资源的任何单个属性。还有另一个HTTP动词 - PATCH
- 这更适合您的情况。
我不想创建另一个HTTP动词引用的副本,而是想推荐给this tutorial,我发现它非常优秀和彻底。查看PUT
和PATCH
动词,为您的实施做出决定。