cta*_*cke 20 asp.net rest web-services
我很擅长实现REST服务(如果重要的话,在Windows CE平台上),我开始使用IBM的一般定义,即使用POST创建(INSERT)和PUT进行更新.
现在我遇到了Sun的定义,恰恰相反.所以我的问题是,"普遍接受的"定义是什么?或者甚至有一个?
Cri*_*riu 20
使用PUT创建资源的缺点是客户端必须提供表示它正在创建的对象的唯一ID.虽然客户端通常可以生成此唯一ID,但大多数应用程序设计人员更喜欢他们的服务器(通常通过其数据库)创建此ID.在大多数情况下,我们希望服务器控制资源ID的生成.那么我们该怎么办?我们可以切换到使用POST而不是PUT.
所以:Put = UPDATE
Post = INSERT
动词是:
GET {path}:检索标识符为的资源{path}.
PUT {path}:创建或更新标识符为的资源{path}.
DELETE {path}:删除标识符为的资源{path}.
POST {path}:调用由其标识的操作{path}.
当打算创建新资源时,PUT如果我们知道资源的标识符应该是什么,我们就可以使用,POST如果我们希望服务器确定新资源的标识符,我们就可以使用.
当服务器在其URI空间的一部分上授予客户端控制权时,PUT可用于创建.这相当于文件系统中的文件创建:当您保存到尚不存在的文件时,您可以创建它,如果该文件存在,则结果是更新.
但是,PUT缺乏客户端隐含意图的能力.考虑下订单:如果您输入/ orders/my-new-order,则意义只能更新/ orders/my-new-order标识的资源,而POST/orders /可能意味着'下新订单'如果POST接受资源具有适当的语义.
IOW,如果你想实现任何创建新资源的副作用,你必须使用POST.
一月
| 归档时间: |
|
| 查看次数: |
4597 次 |
| 最近记录: |