什么是幂等性?
在程序中,如果一个方法(功能或接口)重复执行一次或多次结果都是一样的,那么我们就说这个方法(功能或接口)是幂等的。
实例说明
1、更新某用户的昵称为“小郝”的接口,无论很执行一次还是多次,它的结果都是相同的,因此该接口具有幂等性。
2、统计订单已下单数量接口,执行一次和执行多次的结果是不相同的,因此该接口不具有幂等性。
总结
在互联网环境中,因为网络等问题,会导致某些方法需要进行重试。有可能会出现第一次执行成功了,但成功的结果却没能正常返回到客户端,就会导致客户端进行重试。这种情况下,不具有幂等性的方法和功能就会出现问题。
扩展场景
另外,最后还有一个场景:比如获取某商品的详情信息的接口,执行了多次,看到这里很多小伙伴会认为它是幂等的。但是在这多次请求之间有另一个接口修改了该商品的详情信息,导致第一次请求或后续的请求返回结果不同,那么你还会认为它是幂等的吗?