关于REST接口幂等性的理解

理解幂等性

HTTP幂等方法,是指无论调用多少次都不会有不同结果的 HTTP 方法。不管你调用一次,还是调用一百次,一千次,结果都是相同的。

GET请求

HTTP GET方法,用于获取资源,不管调用多少次接口,结果都不会改变,所以是幂等的。 值得注意,幂等性指的是作用于结果而非资源本身。怎么理解呢?例如,这个HTTP GET方法可能会每次得到不同的返回内容,但并不影响资源。可能你会问有这种情况么?当然有咯。例如,我们有一个接口获取当前时间,我们就应该设计成GET /service_time # 获取服务器当前时间它本身不会对资源本身产生影响,因此满足幂等性。

POST请求

方法HTTP POST方法是一个非幂等方法,因为调用多次,都将产生新的资源。

PUT请求

HTTP PUT方法用于更新数据,即它直接把实体部分的数据替换到服务器的资源,我们多次调用它,只会产生一次影响,但是有相同结果,所以满足幂等性。

PATCH请求

HTTP PATCH方法是非幂等的。HTTP POST方法和HTTP PUT方法可能比较好理解,但是HTTP PATCH方法只是更新部分资源,怎么是非幂等的呢?因为,PATCH提供的实体则需要根据程序或其它协议的定义,解析后在服务器上执行,以此来修改服务器上的资源。换句话说,PATCH请求是会执行某个程序的,如果重复提交,程序可能执行多次,对服务器上的资源就可能造成额外的影响,这就可以解释它为什么是非幂等的了。

DELETE请求

DELETE用于删除数据,即调用一次和多次对资源产生影响是相同的,所以也满足幂等性。

转载于:https://my.oschina.net/crazyharry/blog/1105172

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值