幂等性原理:前台的多次请求,对于后台,也是同一次请求;
通常接口设计方式:
1、前端的页面提交按钮置灰,防止用户重复点击;
2、对前端提交的token进行校验,防止表单的重复提交;
3、接口的防重可以使用接口表的组合唯一键进行防重,如果有重复数据,则插入失败;
4、增加请求的日志历史表,每次新的请求进来,都查看下历史表,防止重复数据访问;
实际项目使用
1、前端token防重:
(1) 首先前端加载页面,调用后台服务,后端服务生成Token,并且将Token记入Token表中;【Token表中主要登记Token值,删除标识,有效时间】
(2)第一次请求:前端请求加上token请求,给到后端,后端比较token值、删除标识,有效时间,判断是否有更新行数,如果有更新行数,
则说明Token有效,删除token后进行下一步;
(3)重复请求:前端重复请求加上token请求,请求给到后端,后端验证token是否有更新,没有更新,则判断为重复请求;