我正在寻找我的REST JSON服务的建议。我有一个简单的顺序,基本上做简单的CRUD。因此,除了获取订单的详细信息,创建订单和删除订单之外,我还希望在单个订单上执行更多活动,例如:
任何人都可以就如何扩展服务分享想法。目前我有一个类似
的URI非常感谢
答案 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
宝石会完成其余的工作。