我正在构建一个Web服务应用程序,我正在寻找有关如何更新资源的建议。
我有一个用户端点,允许创建,修改和删除数据库中的用户。 我的问题涉及用户的更新。在表格中,我编写了一个API如何工作的模式,以及我读过的每个端点的描述。
existingEmailId
的PUT和POST似乎做同样的事情,因为emailId是资源的实际ID。因此,对于这个端点,只需创建一个端点,或者我应该同时使用它们吗?
任何建议都将不胜感激。
答案 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应该用于更新。