基于JSON的REST API上PUT最常见的预期行为是什么?文件更换或部分更新)?

时间:2015-03-06 18:45:47

标签: json api rest http put

我知道HTTP方法有一整套RFC,但我想知道从 PUT 到REST API的 预期行为 是什么响应Content-type: application/json并接受JSON编码的主体。

  • 是否应该使用正文中传递的新JSON对象完全替换文档?
  • 是否只能修改JSON正文中传递的属性? (作为PATCH方法RFC 5789)的推荐行为。
  • 如果API公开的文档不符合架构并且正文中的JSON对象具有当前文档中不存在的新属性,该怎么办?它应该添加吗?

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

2 个答案:

答案 0 :(得分:1)

1)和2)PUT意味着更换。使用它进行部分更换是不正确的。这就是PATCH的用途。

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

答案 1 :(得分:-1)

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

我真的推荐这本书:http://www.amazon.com/REST-API-Design-Handbook-ebook/dp/B00890OBFI/ref=sr_1_2?s=books&ie=UTF8&qid=1425669926&sr=1-2&keywords=rest+api