接口幂等性的解决方案
在编程中,幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数指的是那些使用相同参数重复执行也能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。比如说getIdCard()函数和setTrue()函数就是幂等函数。 幂等在我的理解里就是,一个操作不论被执行多少次,产生的效果和返回的结果都是一样的。 一个幂等的操作典型如:把编号为5的记录的A字段设置为0这种操作不管执行多少次都是幂等的。 一个非幂等的操作典型如:把编号为5的记录的A字段增加1这种操作显然就不是幂等的。 幂等的方案 1.查询操作:Select是天然的幂等操作。 查询一次和查询多次,在数据不变的情况下,查询的结果都是一样的。 2.删除操作:删除操作也是幂等的,删除一次和删除多次都是把数据删除。 因为删除操作通常是定向的,比如通过id去删除数据,如果该id在数据库中存在对应记录,则删除该记录;如果该id在数据库中不存在对应记录,也是执行的删除记录操作,只是没有实质性地删除到记录而已,却也不会有其他的副作用。 但是如果删除操作具有返回值的话,可能返回的结果会不一样,比如删除一条记录之后返回这条记录中的某个值,如果删除的数据不存在(已经在第一次的删除请求中被删除了),返回的就是空值了。 3.唯一索引:通过在数据库表的一个字段上建立唯一索引可以有效防止新增脏数据。