RESTful POST 的资源命名

RESTful Resource Naming for POST

给出这个命名约定:

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

对于 POST(插入)资源的 url 应遵循此 path/logic:

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

下面的路径在概念上是错误的吗?为什么是 correct/wrong?

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

ID是外部生成的

对于 PUT 也可以应用相同的逻辑吗? (id自然不能改,只能作为ref)

谢谢

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

关于在正文中包含 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"
}