Dre*_*rew 206 rest http crud http-method
在RESTful样式编程中,我们应该使用HTTP方法作为构建块.虽然哪种方法与经典的CRUD方法相匹配,但我有点困惑.GET/Read和DELETE/Delete非常明显.
但是,PUT/POST有什么区别?它们是否与"创建和更新"一对一匹配?
Pau*_*gan 291
Create = PUT with a new URI
POST to a base URI returning a newly created URI
Read = GET
Update = PUT with an existing URI
Delete = DELETE
Run Code Online (Sandbox Code Playgroud)
PUT可以映射到Create和Update,具体取决于PUT使用的URI的存在.
POST映射到Create.
更正:POST也可以映射到Update,尽管它通常用于Create.POST也可以是部分更新,因此我们不需要建议的PATCH方法.
Don*_*ows 49
关键在于你是否在进行幂等改变.也就是说,如果对消息采取两次操作将导致"相同"的事情就像只执行一次一样,那么你就会有一个幂等的改变,它应该被映射到PUT.如果没有,它映射到POST.如果你从不允许客户端合成URL,PUT非常接近Update,POST可以处理Create就好了,但这肯定不是唯一的方法; 如果客户端知道它想要创建/foo/abc并知道要放在那里的内容,它就可以正常地作为PUT.
POST的规范描述是当你承诺购买东西时:这是一个没有人想要在不知情的情况下重复的动作.相比之下,预先设置订单的发货地址可以通过PUT完成:如果你被告知发送6 Anywhere Dr, Nowhereville一次,两次或一百次都没关系:它仍然是相同的地址.这是否意味着它是一个更新?可能......这一切都取决于你想要如何编写后端.(请注意,结果可能不相同:您可以在用户上次执行PUT作为资源表示的一部分时向用户报告,这将确保重复的PUT不会导致相同的结果,但结果仍然是在功能意义上是"相同的".)
ex0*_*b1t 31
我正在寻找相同的答案,这就是IBM所说的. IBM Link
Run Code Online (Sandbox Code Playgroud)POST Creates a new resource. GET Retrieves a resource. PUT Updates an existing resource. DELETE Deletes a resource.
stormpath有一个很棒的youtube视频讲话实际上解释了这个,URL应该跳到视频的正确部分:
另外值得观看它超过一个小时的谈话,但如果您考虑投入时间来构建REST api,则非常有用.
这取决于具体情况......但总的来说:
PUT =使用资源的具体URI更新或更改具体资源.
POST = 在给定URI的源下创建一个新资源.
即
编辑博文:
PUT:/ blog/entry/1
创建一个新的:
POST:/ blog/entry
在某些情况下,PUT可能会在请求之前清除新资源的URI时创建新资源.POST也可用于实现其他几个用例,其他用例不包含这些用例(GET,PUT,DELETE,HEAD,OPTIONS)
对CRUD系统的一般理解是GET = request,POST = create,Put = update,DELETE = delete
| 归档时间: |
|
| 查看次数: |
118066 次 |
| 最近记录: |