POST的RESTful资源命名

时间:2017-03-21 17:02:22

标签: rest asp.net-web-api soa restful-architecture

给出这个命名惯例:

http://www.restapitutorial.com/lessons/restfulresourcenaming.html

对于POST(插入),资源的url应该遵循以下路径/逻辑:

 http://www.example.com/products/X123
 {
       "color":"something"
 }

以下路径在概念上是错误的吗?为什么它是正确/错误的?

 http://www.example.com/products
 {
       "id":"X123"
       "color":"something"
 }

ID在外部生成

对于PUT,是否可以应用相同的逻辑? (id自然不得更改,但仅用作ref)

谢谢

2 个答案:

答案 0 :(得分:2)

对于POST(通常用于在集合中创建新项目),请使用以下命令:

http://www.example.com/products
{
   "color":"something"
}

如果您有客户生成id的要求,则

http://www.example.com/products
{
   "id": "abc123"
   "color":"something"
}

编辑:

对于PUT,它应该是:

http://www.example.com/products/abc123
{
   "color":"something else"
}

答案 1 :(得分:0)

在我看来,你的场景最适合PUT方法,我总是喜欢在url中包含id,如果我只知道它 - 那将是其他人最清楚的解决方案。

关于在身体中包含id的第二部分,有很好的答案:https://stackoverflow.com/a/28108844/3301697 我在这个答案中唯一要改变的是在每个PUT请求中包含id,如果你知道,为什么要隐藏它。