首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >哪些HTTP方法与哪些CRUD方法相匹配?

哪些HTTP方法与哪些CRUD方法相匹配?
EN

Stack Overflow用户
提问于 2011-06-01 22:57:09
回答 9查看 130.1K关注 0票数 218

在RESTful风格的编程中,我们应该使用HTTP方法作为我们的构建块。不过,我有点困惑,哪些方法与经典的CRUD方法相匹配。GET/Read和DELETE/Delete非常明显。

但是,PUT/POST有什么区别呢?它们是否与Create和Update一一匹配?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-06-02 11:38:42

代码语言:javascript
代码运行次数:0
运行
复制
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也可以映射到Update,尽管它通常用于Create。POST也可以是部分更新,因此我们不需要建议的补丁方法。

票数 304
EN

Stack Overflow用户

发布于 2011-06-01 23:23:28

关键是你是否在做一个幂等的改变。也就是说,如果对消息采取两次操作会导致“相同”的事情出现,就好像只做了一次一样,那么你就得到了一个幂等变化,它应该映射到PUT。如果不是,则映射到POST。如果您从不允许客户端合成/foo/abc,PUT非常接近更新,POST可以很好地处理创建,但这肯定不是唯一的方法;如果客户端知道它想要创建URL并知道要放什么内容,它就可以作为PUT工作。

对帖子的规范描述是当你承诺购买某物时:这是一个没有人想要在不知情的情况下重复的行为。相比之下,预先设置订单的发送地址可以通过PUT来完成:无论您被告知发送到6 Anywhere Dr, Nowhereville一次、两次还是一百次:它仍然是相同的地址。这是不是意味着这是一个更新?可能是…这完全取决于您想要如何编写后端。(请注意,结果可能并不相同:您可以将用户上次执行PUT的时间作为资源表示的一部分返回给用户,这将确保重复的PUT不会导致相同的结果,但结果在函数意义上仍然是“相同的”。)

票数 50
EN

Stack Overflow用户

发布于 2013-11-01 21:47:11

我也在寻找同样的答案,这是IBM所说的。IBM Link

POST创建一个新资源。GET检索资源。PUT更新现有资源。DELETE删除资源。

票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6203231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档