post,put,patch之间的区别

总结

区别 Post put Patch
等幂性 非等幂 等幂
用处 创建 更新资源,如果资源不存在就创建资源 只更新资源的一部分

详细说明

  1. POST是非等幂的,多次调用会产生不同的结果。比如:创建一个用户,由于网络原因或是其他原因多创建了几次,那么将会有多个用户被创建。

    PUT 多次调用还是会创建的结果是一样的,只会创建一个用户,所以PUT是等幂的。

  2. 假设我们有一个UserInfo,里面有userId, userName, userGender等10个字段。但我我们的编辑功能因为需求,在某个特别的页面里只能修改userName,这时候需要更新userName。

    如果使用PATCH来局部更新资源,只会传一个userName到指定资源去,表示该请求是一个局部更新,后端仅更新接收到的字段,所以PATCH一般是用来局部更新资源的,

    如果使用PUT来局部更新资源,则会把一个包含了修改后userName的完整userInfo对象传给后端,做完整更新。理论上说,如果使用了PUT,但却没有提供完整的UserInfo,那么缺了的那些字段应该被清空。

  3. **PUT **会有一个create操作,如果加入更新的id不存在,会进行创建。

    **PATCH **则不会创建。

here is a simple description of all

  1. POST is always for creating a resource ( does not matter if it was duplicated )
  2. PUT is for checking if resource is exists then update , else create new resource.
  3. PATCH is always for update a resource.

上一篇
蜜汁json解析错误 蜜汁json解析错误
场景同样的一套代码,在别人电脑上能跑,能用JSONDecodeError来catch,而在自己电脑上就无法捕捉导致代码跑不了。 让人感到迷惑的地方是,这套代码以前在自己电脑上也能跑,突然就报出了这个错误orz,都不敢让人相信是环境问题,我
2021-03-12
下一篇
python直接赋值,浅拷贝,深拷贝解析 python直接赋值,浅拷贝,深拷贝解析
参考:https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html 直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy
2021-03-03
目录