已清楚PUT是替换整个资源,PATCH是更新某个资源的部分内容。但如何理解PATCH是非幂等的?举个例子?
楼上回答有些问题,补充一下。如果URI对应的资源不存在,服务端可以创建一个新资源,这个对PUT也是生效的。
PUT与PATCH的区别,PUT是根据客户端提供了完整的资源数据,客户端提交什么就替换什么,而PATCH有可能是根据客户端提供的参数或者指令,动态的计算出某个值,例如每次请求后资源的某个参数减1,所以多次调用,资源会有不同的变化。所以PATCH是非幂等的。
3 回答2.4k 阅读✓ 已解决
828 阅读
427 阅读
所谓幂等,通俗来讲就是不管执行多少次,所造成的后果都一样,比如 DELETE /my/resource/123 不管执行多少遍都是删除 123 这个资源,不会造成把 456 给删了;再如 POST /my/resource 数据 name=张三&age=60 每执行一次就加一个张三,这是非幂等的。那回到 PATCH 上,如何理解它是非幂等呢,功能是更新部分内容没错,但对它的定义这个是不全的,完整描述如下:
其中有很重要一句说明,如果 URI 对应的资源不存在,服务端可以创建一个新资源。
详见 https://tools.ietf.org/html/r...