后端接口对接注意事项解析 接口对接怎么做( 二 )


  • 提供查询
为什么提供了幂等还要提供查询?
查询和幂等的作用区别就在于,很多时候请求方请求出现异常,没有明确的答案,如果希望业务继续,则可以幂等请求 。
例如该用户派发优惠券,如果发生异常则继续幂等派发即可 。
如果需要根据实际业务状态决定如何操作,则需要先查询 。
例如:很多有时效的业务,抢购业务,用户下单异常,最终没抢到货 。
肯定是先查询,如果刚才订单实际成功,则给用户退款 。如果刚才订单未成功,则直接关闭业务,这单子不用继续做下去了 。
  • 异步通知:
下单接口如果是同步接口,肯定没有实现异步通知的必要 。
很多下单接口是异步接口,真正的业务状态在同步中无法返回,同步仅仅返回已收单 。
异步通知的作用:能增强业务的时效性,同时也能减少请求方轮询导致的压力 。
如果收到明确通知,请求方当即可以触发下一步操作,如果没有通知或通知丢失,请求方只能挂单等待异常处理时主动查询确认状态 。
  • 是否需要对账
一般后端对接的业务接口,基本都需要对账 。
对账最大的问题是【跨天】,例如:请求方请求时间为凌晨:23:59:59.但是接收方收到的时间为次日:00:00:04
假如按照T+1对账,那在T日临界点,总可能出现对不平的情况 。请求方有该笔账,但是接收方没有 。
我们不讨论【勾对】等其他实现方式 。
如果可能,在定义接口的时候,可以讨论清楚对账方式及以哪方时间为准 。避免后续对账开发困难 。
例如:在下单接口中添加objectData字段,以请求方的该字段作为对账时间依据 。
  • 考虑升级
对接的任何一方都有在业务进行中要升级接口的可能 。但是要避免需要停服、及互相依赖的局面,例如:大家约定一个时间,半夜你先升级,我在升级 。
场景1:公私钥泄露需要更换 。
可以在接口中添加keyIndex来标识密钥的版本或者signType字段来标识签名的算法 。
这样请求方报文中使用什么版本的密钥,接收方就使用什么版本的密钥解密 。互相不依赖 。提前配置好即可 。
场景2:接口字段升级
下单接口有新增字段,选择升级接口版本号,形成一个新接口 。老接口仍保留 。接收方先升级,请求方择机升级,互不影响 。
查询同理 。
  • 考虑异常
网络异常、网络波动、今天我灾备、明天他机房维护等 。这些单个事件都是小概率,但是这样的事件非常多 。
网络异常也导致很多业务异常,我们要充分考虑的异常导致的挂单和中断的情况,做好异常处理和自愈功能 。
例如:对账往ftp上投送对账文件 。可能网络异常,今天的文件没放上去;或者今天的放上去了,但是出问题需要重新放;可能灾备停了两天,在进行对账等等
ps:不要忽略这些小概率事件,没有预案,只要发生一次,造成的异常业务笔数可能手动处理很久 。
  • 接口效率
考虑这个接口的负载是很关键的步骤 。同步接口压力大点,异步接口可以使用MQ进行削峰填谷相对压力小点 。
提升效率,控制并发是一个非常庞大的体系 。常见的方式:
1.共享数值字段,我们只做累加
2.每个用户独立有一条记录,将并发化解 。
4.用插入代替更新,分段锁库存等,使用<=0代替=0,防止极限情况击穿等 。
5.分库分表,避免热点表和数据的阻塞 。
6.注意风控,报警等情况 。
……………
  • 示例:
{
“authCode”: “123”, 业务认证码
“appCode”: “123”, 请求方
“deKey”:”frfferdfa” 对称密钥加密值
“partnerData”: “22”, 敏感数据加密值
“seqNo”: “123”,请求流水
“timestamp”: “202107201653123”, 时戳
“keyIndex”: “1”, 加密密钥版本
“sign”: “123” 签名
}
赞 (0) 打赏
后端接口对接注意事项解析 接口对接怎么做

文章插图
投稿
广告渠道投放有哪些渠道广告投放渠道有什么优势及区别 在互联网的运营推广中,都是通过网站建站推广和线上投放平台进行推广产品和服务的 。因为,在丰富多彩的互联网营销中,如果只采取单一的推广方式,是很难获得更多的潜在用户的 。所以,接下来给大…