在RESTful风格的编程中,我们应该使用HTTP方法作为构建块。我有点困惑,但是哪些方法与经典的CRUD方法相匹配。GET/Read和DELETE/ DELETE是显而易见的。
但是,PUT/POST之间有什么区别呢?它们是否与创建和更新一一匹配?
在RESTful风格的编程中,我们应该使用HTTP方法作为构建块。我有点困惑,但是哪些方法与经典的CRUD方法相匹配。GET/Read和DELETE/ DELETE是显而易见的。
但是,PUT/POST之间有什么区别呢?它们是否与创建和更新一一匹配?
当前回答
Symfony项目试图保持其HTTP方法与CRUD方法的联合,它们的列表将它们关联如下:
从服务器上检索资源 在服务器上创建一个资源 PUT更新服务器资源 DELETE删除服务器上的资源
值得注意的是,正如他们在该页上所说,“实际上,许多现代浏览器不支持PUT和DELETE方法。”
据我所记得,Symfony在生成表单时为那些不支持PUT和DELETE的浏览器“伪造”了PUT和DELETE,以便在浏览器不支持HTTP的情况下尽量接近使用理论上正确的HTTP方法。
其他回答
这要看具体情况而定。但总的来说:
PUT =用资源的具体URI更新或更改具体资源。
POST =在给定URI的源下创建一个新资源。
I.e.
编辑一篇博客:
输入: /博客/录入/ 1
创建一个新的:
发布: /博客/条目
PUT可以在某些情况下创建一个新资源,其中新资源的URI在请求之前是明确的。 POST也可以用来实现其他用例(GET、PUT、DELETE、HEAD、OPTIONS)所不涵盖的其他用例。
对于CRUD系统的一般理解是GET =请求,POST =创建,Put =更新,DELETE =删除
我一直在寻找同样的答案,这是IBM说的。 IBM链接
POST创建一个新资源。 GET检索资源。 PUT更新现有资源。 DELETE删除资源。
目前(2016年)最新的HTTP动词是GET, POST, PATCH, PUT和DELETE
概述
HTTP获取-选择/请求 HTTP put - update 插入/创建 HTTP补丁——当放置一个完整的资源表示很麻烦并且占用了更多的带宽时,例如:当你必须部分更新一个列时 HTTP删除-删除
希望这能有所帮助!
如果你对设计REST api感兴趣,这是一本不错的读物!网站在线版本github资源库
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
PUT可以映射到Create和Update,这取决于与PUT一起使用的URI的存在。
POST映射到Create。
更正:POST也可以映射到Update,尽管它通常用于创建。POST也可以是部分更新,所以我们不需要建议的PATCH方法。
youtube上有一个由stormpath制作的视频,它解释了这个问题,URL应该跳到视频的正确部分:
Stormpath YouTube视频
同样值得一看的是,这是一个多小时的演讲,但如果你想花时间构建一个REST api,这是非常有趣的。