patch和put方法的区别

patch方法用来更新局部资源

假设有一个UserInfo,里面有userId, userName, userGender等10个字段。可编辑功能因为需求,在某个特别的页面里只能修改userName。通常把一个包含了修改后userName的完整userInfo对象传给后端,做完整更新,这种做法会浪费宽带。于是patch诞生,只传一个userName到指定资源去,表示该请求是一个局部更新,后端仅更新接收到的字段。

put虽然也是更新资源,但要求前端提供的一定是一个完整的资源对象,理论上说如果用了put,但却没有提供完整的UserInfo,那么缺了的那些字段应该被清空。

如果后端程序没有按照标准对两个方法做不同的处理,在程序里把方法名从put改成patchm没有任何影响。

PATCH 与 PUT 属性上的一个重要区别还在于:PUT 是幂等的,而 PATCH 不是幂等(表示一个操作执行任意次对系统的影响跟一次是相同的)的。

POST 方法不是幂等的,若反复执行多次对应的每一次都会创建一个新资源。如果请求超时,则需要回答这一问题:资源是否已经在服务端创建了?能否再重试一次或检查资源列表?而对于幂等方法不存在这一个问题,我们可以放心地多次请求。

原文:https://blog.csdn.net/varyall/article/details/80895945

猜你喜欢

转载自www.cnblogs.com/xjy20170907/p/11647585.html