接口的幂等性是指,用户对于同一操作发起的一次请求或者多次请求的结果是一致的。例如,用户在购物时,由于网络延迟导致第一次下单没有响应,用户又点了几次下单,这时候接口的幂等性就会保证用户点击多次只会下一次单。
保证接口幂等性的方法有以下两种:
1、token
每次请求过来我们会根据它的请求参数或者其它特征生成一个唯一的标识token,并把它存储起来(放到redis里),当下次请求再来时我们先去查询一下是否已经存在相同的标识记录,如果存在,那么忽略该次请求,否则先存储标识,然后再进行业务处理。
2、插入或更新(InsertOrUpdate)
这种方法适用于插入并且有唯一索引的情况,比如我们要关联商品品类,其中商品的ID和品类的ID可以构成唯一索引,并且在数据表中也增加了唯一索引。这时就可以使用InsertOrUpdate操作,
INSERT INTO … VALUES (……) ON DUPLICATE KEY UPDATE