一、什么是HTPP Patch

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
而patch其实就是对新增五种请求方式中的put的补充。用来对已知资源进行局部更新。
补充一下,PATCH 与 PUT 属性上的一个重要区别还在于:PUT 是幂等的,而 PATCH 不是幂等的。
幂等是一个数学和计算机学概念,在计算机范畴内表示一个操作执行任意次对系统的影响跟一次是相同

二、打个比喻

假设我们有一个UserInfo,里面有userId, userName, userGender等10个字段。可你的编辑功能因为需求,在某个特别的页面里只能修改userName,这时候的更新怎么做?
人们通常(为徒省事)把一个包含了修改后userName的完整userInfo对象传给后端,做完整更新。但仔细想想,这种做法感觉有点二,而且真心浪费带宽(纯技术上讲,你不关心带宽那是你土豪)。
于是patch诞生,只传一个userName到指定资源去,表示该请求是一个局部更新,后端仅更新接收到的字段。
而put虽然也是更新资源,但要求前端提供的一定是一个完整的资源对象,理论上说,如果你用了put,但却没有提供完整的UserInfo,那么缺了的那些字段应该被清空。
 
三、使用方法
1、在之前开发的项目中用户控制器中添加一个patch方法,用来更新用户信息

2、请求时如果只更新用户公司名,请求格式如下:

3、如要更新集合内用如下的方法

4、请求更新集合的数据时value用数组就行,如下:

最新文章

  1. Backbone.js 中的Model被Destroy后,不能触发success的一个原因
  2. C# 调用Excel 出现服务器出现意外情况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)
  3. MarkDown简要语法
  4. 【ZOJ 1221】Risk
  5. filter()函数 条件筛选
  6. Ztack学习笔记(4)-系统网络分析
  7. 每天一条linux命令——halt
  8. 从m个数中取top n
  9. 检验身份证的正确性(Golang版本)
  10. PBOC圈存时用到3DES加密解密以及MAC计算方法
  11. 最新版multer1.3.0上传文件
  12. Codeforces Round #527 (Div. 3) C. Prefixes and Suffixes
  13. Java学习笔记day_01
  14. 【BZOJ2576】[JSOI2011]序的计数 (动态规划)
  15. optional
  16. IIS文件名解析漏洞扼要分析
  17. Python3语法详解
  18. .net 分布式架构之分布式锁实现(转)
  19. 故障排查-linux命令测试端口连通性
  20. Jquery checkbox 遍历

热门文章

  1. break与continue对比
  2. Jmeter连接mysql数据库?so easy!!!
  3. MVC学习的心路历程
  4. RedHat下安装Ecshop
  5. Python中关于第三方库的补充
  6. C#集合类型——Hashtable、Dictionary之浅谈
  7. windows下部署.netcore+docker系列一(安装linux (ubuntu18.4))
  8. sqlilab11-14
  9. Dockerfle创建镜像
  10. webug3.0靶场渗透基础Day_2(完)