用于将记录添加到记录

时间:2015-05-27 15:26:57

标签: rest

什么是正确的" RESTful"将子记录添加到父记录的操作的URL?

例如,如果我想提供一个用于添加"评论"记录到"命令"记录,我该如何格式化?

我的第一个想法是:

PUT http://example.com/order/12345/comment/add

我在Django工作,它使用类似的模式,所以这看起来最直观。但是,阅读一些RESTful设计指南like this one表明这可能是不好的做法,因为他们认为" PUT"和"添加"是多余的,因此可能会产生混淆。

4 个答案:

答案 0 :(得分:3)

我会做以下事情:

POST http://example.com/order/12345/comment

答案 1 :(得分:2)

put动作和url的add部分是多余的。但任何这方面都没有严格的规定。我看到apis有这种形式,即使是来自主要供应商,有时只是简单地说“放置动作和uri段是多余的”有时我什么都不说,只是调用端点。如果我正在写一个api,我可能会放弃添加部分。

答案 2 :(得分:1)

有几点可以让您的请求RESTful:

1)使用URL中的资源名称复数而不是单数形式(订单而不是订单)

2)永远不要在URL中使用ACTION名称,例如“comment / add”

中的(ADD)

3)因为你在不知道任何手牌ID的情况下添加“新”评论,所以你应该使用POST请求。

最后,我建议的网址是:

HttpVerbs = POST http://api.example.com/orders/12345/comments

这应该为您的订单添加新评论#12345

答案 3 :(得分:0)

对于您的问题,没有一个通用的答案。其余的URL可以是您想要的任何内容。在一天结束时,它们是映射到方法的路由。我不会太担心“最佳”网址。我更愿意找到适合我的标准,然后转向更大,更重要的事情。只要客户知道URL是什么,就可以了。