银行微服务

系统接口幂等性该如何设计?

为了避免客户重复提交造成的不利影响,在前端和后端分别该怎么设计呢?

参与9

3同行回答

wanrongweiwanrongwei  系统架构师 , 亚信科技
从系统严整来说,# 接口幂等性应该放入后台1. 我们可以按需进行# 接口幂等性验证,需要验证的接口加入注解2. 前端在请求这类接口时,首先从后台获取一个id3. 后台在id请求时,生成id存入redis中,4. 前端请求时需要带入id5.后端拦截所有api请求,从头部获取id,去redis验证...显示全部

从系统严整来说,# 接口幂等性应该放入后台
1. 我们可以按需进行# 接口幂等性验证,需要验证的接口加入注解
2. 前端在请求这类接口时,首先从后台获取一个id
3. 后台在id请求时,生成id存入redis中,
4. 前端请求时需要带入id
5.后端拦截所有api请求,从头部获取id,去redis验证

收起
软件开发 · 2020-04-29
浏览1253
尘世随缘尘世随缘  技术总监 , 上海某互联网金融公司
这个问题需要分端来看:前端:当提交请求后,如果后端没有应答,那么按钮一直处于不可点击状态,避免用户的重复点击后端:可以使用token机制,整理需要幂等的接口,前端调用后端的token获取服务返回获取token,并把token存入缓存,前端拿到token放在head里面和请求一起提交。此时后端来判断...显示全部

这个问题需要分端来看:
前端:当提交请求后,如果后端没有应答,那么按钮一直处于不可点击状态,避免用户的重复点击

后端:可以使用token机制,整理需要幂等的接口,前端调用后端的token获取服务返回获取token,并把token存入缓存,前端拿到token放在head里面和请求一起提交。此时后端来判断如果缓存中有对应token则可以处理业务,否则就是重复提交,直接返回操作成功即可。

当然接口的幂等方案很多,如:
1、MVCC
2、去重表
3、唯一主键
要看业务上是满足那种方案,而且方案的实施成本最小。

收起
互联网服务 · 2020-04-29
浏览1336
StevenSteven  IT顾问 , steven
考虑下以下设计是否可行:前端可以在提交后禁用重复提交、刷新,或者再次提交弹窗提醒确认。为防止通过工具重复发送相同的请求,可以在网关层进行过滤,过滤重复的请求。但有特殊的情况,可能我需要提交两个或多个相同的请求,这可能需要每个请求生成一个随机transactionid,强制提醒...显示全部

考虑下以下设计是否可行:

前端可以在提交后禁用重复提交、刷新,或者再次提交弹窗提醒确认。
为防止通过工具重复发送相同的请求,可以在网关层进行过滤,过滤重复的请求。
但有特殊的情况,可能我需要提交两个或多个相同的请求,这可能需要每个请求生成一个随机transactionid,强制提醒客户每次确认请求。

收起
证券 · 2020-04-17
浏览1281

提问者

johncyj
其它农信
擅长领域: 存储服务器分布式系统

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-04-17
  • 关注会员:4 人
  • 问题浏览:2204
  • 最近回答:2020-04-29
  • X社区推广