在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,这是非常有趣的。