2013-04-25 32 views
0

我在寻找有关我的REST JSON服务的建议。我有一个简单的订单,基本上做简单的CRUD。所以基本上,除了获得订单的详细信息,创建订单和删除订单,我也想做一个量级以上的活动,如:简单订购服务的REST设计建议

  • 批准订单
  • 路线以特定用户
  • 取消订单
  • 暂停顺序
  • 拒绝命令
  • 像顺序

任何人都可以分享如何扩展服务的想法。目前,我有以下类似

http://myapi.com/order/

非常感谢您

+0

你的模式是什么样的? – Marvo 2013-04-25 17:39:22

回答

1

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

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

A.列举了可能出现为响应与POST方法例如 http://myapi.com/orders/123?action=APPROVE动作做查询参数的任何行动你需要提供的数据。

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

B.提供您的CRUD以外的行为模式。因此您可以通过@POST,@GET等方式进行crud表单/订单,然后为批准操作提供/ orderActions/approve/{id}或类似于POST的内容。

+0

所以基本上你的建议是解析与queryString相关的任何动词。 – pakcikkantin 2013-04-26 02:53:28

+0

是的,使用行为模式 – fpmoles 2013-04-26 13:14:22

0

你没有提到的URI你所使用的语言为这个项目。我会推荐Ruby on Rails与state_machine宝石,这将允许您执行您的CRUD以及您希望移动订单的额外'状态'。

我说RoR主要是因为它会为您开箱,并且state_machine宝石会完成剩下的工作。

+0

嗨richard,感谢您的回复,即时通讯使用服务总线来包装我的服务。我对Ruby的了解不多,我也会研究一下。谢谢你的建议 – pakcikkantin 2013-04-26 02:55:38