REST 服务设计:取消订单?

kon*_*lex 5 rest

考虑到取消订单作为要求,以 RESTful 方式表示此操作的最佳设计选项是什么?为什么?

我至少可以想到以下几点

  • PUT /orders/{id}/cancelled(主体为空)
  • PUT /orders/{id}(带有更改属性的整个订单 JSON/XML/等cancelled

Art*_*tem 9

请记住,您的资源应该是名词,而不是动词或形容词。您http负责告知您正在使用该资源做什么

  1. /orders/{id}/cancelation

PUT- 取消订单

DELETE- 回滚取消(也可能是一种情况)

GET- 返回取消详细信息(例如,您可能希望使用和字段扩展cancelation资源)timestampusername

  1. /orders/{id}

PUT (PATCH) - 可以通过传递类似以下内容来取消:

{
    ...
    "order_status": "CANCELLED"
    ...
}
Run Code Online (Sandbox Code Playgroud)

这确实取决于您的业务领域,但第一个听起来对我来说更可取,因为它增加了一些灵活性,例如扩展模型和timestamp取消取消。