关于简单订单服务的REST设计建议

时间:2013-04-25 17:35:02

标签: json rest

我正在寻找我的REST JSON服务的建议。我有一个简单的顺序,基本上做简单的CRUD。因此,除了获取订单的详细信息,创建订单和删除订单之外,我还希望在单个订单上执行更多活动,例如:

  • 批准订单
  • 将订单发送给特定用户
  • 取消订单
  • 暂停订单
  • 拒绝订单
  • 喜欢订单

任何人都可以就如何扩展服务分享想法。目前我有一个类似

的URI

http://myapi.com/order/

非常感谢

2 个答案:

答案 0 :(得分:1)

所以http://myapi.com/orders/ {id}将是单个订单的获得,我见过的大多数设计师使用复数,fyi。

在这种情况下,我会提供两个选项(最不喜欢的例子是第一个)

一个。枚举可能发生的操作并为该操作执行查询参数 http://myapi.com/orders/123?action=APPROVE使用您需要提供的任何数据来响应POST方法。

**注意我不喜欢上述内容,因为它感觉更像RPC而不是REST,但它绝对可以满足您的需求。

B中。除了CRUD之外,还提供行为模式。因此,您可以通过@ POST,@ GET等执行crud表单/订单,然后提供/ orderActions / approve / {id}或类似于POST的批准操作。

答案 1 :(得分:0)

您没有提到您为此项目使用的语言。我会推荐带有state_machine gem的Ruby on Rails,它可以让你进行CRUD以及你想要移动订单的其他“状态”。

我说RoR主要是因为它会为你开箱即用CRUD而state_machine宝石会完成其余的工作。