接口的幂等性及如何保证接口的幂等性

什么是接口的幂等性?

所谓幂等性,大概意思就是这个接口每次调用, 返回的结果都是一致的。

例如:一个接口每次调用返回的结果都是1,那么它就是幂等的,如果每次返回的结果都是++1,那么它就不是幂等的.又比如,你点击按钮调用接口下了一个订单,那么你不管再点击几次,你下的都是这个订单,不会让你重复的再生成同样内容的多个这样的订单.就像你在淘宝,选好商品,点击确认按钮,那么就会生成一个订单,跳转到下一步付款页面,如果在跳转之前你的网络不好,你又多点了几次确认按钮,重复发送了几次请求,那其实你多次调用的接口都只会生成你一开始生成的订单,并不会多给你生成几份订单要你多付钱,直到你付款为止,生成下一个订单.这就是接口的幂等性保证.

如何保证接口的幂等性

  1. 可以通过前端来实现一部分的控制,比如点击完按钮后变灰,使用户无法进行多次重复操作
  2. 每个页面生成一个token,在后端记录这个token,如果接口每次传来的token一致,认为是重复操作
  3. 数据库中增加version字段,判断每次请求数据的版本号
  4. 使用悲观锁 select * from xx for update.避免其他用户以该表进行插入,修改或删除等操作,造成表的不一致性.
发布了17 篇原创文章 · 获赞 1 · 访问量 3143

猜你喜欢

转载自blog.csdn.net/chouyiqiong5655/article/details/103981396