如何保证接口幂等

1. 啥是接口幂等
官方解释是,请求一次和请求多次效果相同。
大白话解释,应该是正常情况下,对同个请求只会发一次,但是如果不小心同个请求发了两次甚至多次,不会影响正常业务,比如下订单,点确认订单的时候,  不小心重复点击,导致重复提交订单,但是此时应该只会生成一个订单,如果因为不小心发送多次导致重复下了订单就叫这个接口不幂等

* 如果保证接口幂等,
* 1. 预制订单号,防止重复下单, 我们可以在进入订单页前先请求好一个订单号,那么就可以保证只要再这个订单页提交的请求都是用的这个订单号,然后我们后端再将订单号作为主键或唯一键,让数据库来确保我的记录的唯一性,这样即时创建多次,也会因为数据库唯一键的约束而避免了创建多条记录
* 2. 带 版本号更新, 保障原子性, 我们使用比较并替换的做法, 只有带的版本号和数据库中的版本号相同时才允许更新,且 同时递增版本号,那么当通过请求 带着同个版本号再次更新时就会因为第一次更新已经递增的版本号和更新的版本号不匹配导致的更新失败,也就不会因为请求两次甚至多次导致的重复更新问题.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值