有些小伙伴们会想到幂等这个词,是的,就是我们在设计某些接口时,要考虑如何保证接口幂等,那什么是接口幂等呢?
网上是这样介绍的【接口的幂等性实际上就是接口可重复调用,在调用方多次调用的情况下,接口最终得到的结果是一致的】
网上的说法定义,有点不是太正确,我们看下怎么不正确:
如一个线程请求用户列表接口:select * from user,返回用户表中的数据,而另一个线程往用户表插入数据。那请求用户列表的线程返回的数据每次都不一样,那按照上面的说法,**查询用户列表的接口就不是幂等的,**这显然是不正确的。
老顾的理解应该是多次调用对系统的产生的影响是一样的,即对资源的作用是一样的,但是返回值允许不同。
幂等场景
我们来看一下SQL相关业务是否幂等?
一、查询,select * from user where xxx,不会对数据产生任何变化,具备幂等性。
二、新增,insert into user(userid,name) values(1,‘a’),
如userid为唯一主键,即重复操作