PUT或POST更新资源

时间:2016-03-02 08:50:29

标签: api rest post put

我正在构建一个Web服务应用程序,我正在寻找有关如何更新资源的建议。

user API

我有一个用户端点,允许创建,修改和删除数据库中的用户。 我的问题涉及用户的更新。在表格中,我编写了一个API如何工作的模式,以及我读过的每个端点的描述。

existingEmailId的PUT和POST似乎做同样的事情,因为emailId是资源的实际ID。因此,对于这个端点,只需创建一个端点,或者我应该同时使用它们吗?

任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:1)

  

POST和PUT方法的根本区别在于      通过封闭表示的不同意图突出显示。      POST请求中的目标资源旨在处理      根据资源自身的语义封闭表示,      而PUT请求中的封闭表示定义为      替换目标资源的状态。因此,PUT的意图      对于中间人来说是幂等的和可见的,即使是确切的      效果仅由原始服务器知道。

- RFC 7231

如果您可以访问创建新用户所需的所有信息,包括任何相关的唯一ID,那么您应该优先将完整表示输出到服务器。我不支持PUT和POST - 为什么有两种方法可以做同样的事情?如果您稍后需要POST以执行其他操作,该怎么办?

如果PUT导致新资源,则返回201 Created;如果PUT更新现有资源,则返回200 OK

答案 1 :(得分:0)

PUT用于更新资源,因为PUT应该是幂等的。

答案 2 :(得分:-1)

POST应该用于插入新数据,而PUT应该用于更新。

http://www.restapitutorial.com/lessons/httpmethods.html