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

什么是接口的幂等性?

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

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

如何保证接口的幂等性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值