什么';在基于JSON的RESTAPI上,PUT最常见的预期行为是什么?文档替换或部分更新)?

什么';在基于JSON的RESTAPI上,PUT最常见的预期行为是什么?文档替换或部分更新)?,json,api,rest,http,put,Json,Api,Rest,Http,Put,我知道HTTP方法有一个完整的RFC,但我想知道从PUT到响应内容类型:application/json并接受json编码体的RESTAPI的预期行为是什么 是否希望用正文中传递的新JSON对象完全替换文档 是否只需要修改JSON正文中传递的属性?(这是补丁方法的推荐行为) 如果API公开的文档不符合模式,并且正文中的JSON对象具有当前文档中不存在的新属性,该怎么办?。它应该添加它们吗 欢迎我阅读任何评论或资源。在实践中,只要您在整个应用程序中都坚持使用这两种方法,这样您就可以保持一致性。

我知道HTTP方法有一个完整的RFC,但我想知道从PUT到响应
内容类型:application/json
并接受json编码体的RESTAPI的预期行为是什么

  • 是否希望用正文中传递的新JSON对象完全替换文档
  • 是否只需要修改JSON正文中传递的属性?(这是
    补丁
    方法的推荐行为)
  • 如果API公开的文档不符合模式,并且正文中的JSON对象具有当前文档中不存在的新属性,该怎么办?。它应该添加它们吗

欢迎我阅读任何评论或资源。

在实践中,只要您在整个应用程序中都坚持使用这两种方法,这样您就可以保持一致性。如果我想根据ID更新记录的所有属性,我个人喜欢使用PUT。这样,我可以为端点保存补丁方法,在端点中我只需要指定和更新一些属性,比如典型的更改密码请求,我只需要更新特定属性

我真的推荐这本书:

1)和2)PUT表示替换。使用它进行部分更换是不正确的。这就是补丁的用途

3) 这取决于您的应用程序逻辑