0

我正在为我的 REST JSON 服务寻找建议。我有 1 个简单的订单,基本上是做简单的 CRUD。所以基本上除了获取订单的详细信息、创建订单和删除订单外,我还想在单个订单上做更多的活动,比如:

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

任何人都可以分享我如何扩展服务的想法。目前我在下面有一个URI,比如

http://myapi.com/order/

非常感谢你

4

2 回答 2

1

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

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

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

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

B. 除了你的 CRUD 之外,还提供一个行为模式。因此您可以通过@POST、@GET 等执行粗略的/orders 表单,然后提供/orderActions/approve/{id} 或类似于POST 的内容以进行批准操作。

于 2013-04-25T19:21:44.147 回答
0

你没有提到你在这个项目中使用的是什么语言。我会推荐带有state_machine gem 的 Ruby on Rails,这将允许您执行 CRUD 以及您希望通过的其他“状态”。

我说 RoR 主要是因为它会为您开箱即用地完成 CRUD,而state_machinegem 会完成剩下的工作。

于 2013-04-25T17:45:32.210 回答