POST 的 RESTful 资源命名



给出这个命名约定:

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自然不能更改,而只能用作参考(

谢谢

对于 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"
}

在我看来,您的方案最适合 PUT 方法,如果我只知道它,我总是更愿意在 url 中包含 id - 这将是其他人最清晰的解决方案。

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

最新更新