背景:
我为希望使用我的网站下订单的人提供编程界面.
他们可以使用GET和POST方法下/api/v1/orders订单并查看他们下的所有订单的清单.他们还可以使用GETmetod /api/v1/orders/<order_id>来查看一个订单的具体细节.
需要提供取消订单的方法,但是需要保留记录本身.
我想得到更多经验丰富的开发人员的反馈意见,了解是否能做出明智的决定:
a)实现DELETE动词on /api/v1/current_orders/<order_id>,将其从"当前"命令列表中删除(通过将其标记为已取消).缺点是它将使用不同的名词,这可能会令人困惑.
b)DELETE使用/api/v1/orders/<order_id>与a)相同的功能实现动词.这有点误导,因为实体不会真正被删除,消费者应该意识到这一点.
c)实现POST动词/api/v1/cancellations/<order_id>(或POST在/api/v1/cancellationsJSON有效载荷中使用order_id).这似乎不太理想,因为该请求不会创建资源.但是,使用此端点的后果似乎更清晰.
d) ......?
题:
据我所知,没有总是一个"完美"的解决方案,设计终点为REST API,但同时要注意,需要清晰和直观性,并与高方面的最佳做法,的选项是"最佳"?
表示取消的PATCH动词怎么样/api/v1/orders/<order_id>?
HTTP PATCH:允许在实体中进行部分修改。POST 创建一个新的,PUT 替换现有的,PATCH 只更新您发送的属性,其余的保持原样。
您只需要发送类似{ isCancelled:true}as 的内容 HTTP PATCH,然后您的代码就会更新实体并采取诸如取消任何未完成的工作之类的操作。
| 归档时间: |
|
| 查看次数: |
1391 次 |
| 最近记录: |