2017-03-21 40 views
0

给予命名约定:的RESTful资源命名为POST

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自然不能更改,但仅作为参考)

谢谢

+1

你可以更具体一些:客户端是否可以决定创建资源的ID是否正确? –

回答

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" 
} 
+0

PUT呢? 您认为在URL或请求的主体中添加_id_是正确的吗? – MkM

+0

我更新了PUT的答案 – Zepplock

0

在我看来你的情况适合最好的PUT方法,我总是喜欢以包括URL ID,如果我只知道它 - 这对其他人来说是最明智的解决方案。

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