第三方对接

工作当中,我们遇见对接第三方系统比较多,如:对接银行系统,阿里的服务,腾讯的服务,合作方的系统等,对接那么多外部系统,依然过不好自己的一生?!怀疑第三方,防备使用方,做好自己要作为对接gateway的基本原则。

但是我们对接第三方系统需要注意哪些问题呢?有时候我们对接是双向的,有时候是单向的。

  • 会话问题:一般通过gateway需要登录第三方系统,这时候就需要有登录session,当然session一般会有有效期,当然我们最好不要每次请求第三方系统拿session,一般第三方系统会有限制调用获取session的接口请求频率;
  • 编码:基本约定规范是UTF-8,还是其他编码;
  • 请求模式:是post还是get,是restful还是SOA,一定要设置连接超时时间;
  • 异常处理:双方定义好错误返回格式,一般code data message等;返回code最好统一用httpcode,中间某一条数据失败,不影响下面的数据,做好兜底服务;
  • 时间日期处理:是用时间戳还是datetime,还是LocalDateTime还是String等;
  • 金额处理:double,float精度丢失等问题;
  • 操作系统问题:开发环境一般是Windows部署一般是Linux,但是加密方式 AES 加密方式需要防止linux下产生随机key;
  • 加密方式:非对称加密,MD5,字典序排列等;
  • 幂等性问题:接口有可能出现重复提交,多次请求做好幂等性控制;
  • 尽量降低请求量: 分配处理,一次不要给对方接口过大压力,分步骤,一次不要从内部系统到gateway,再一口气到第三方系统;
  • 文档:推荐一下https://api.aliyun.com/,这是真优秀;
  • 命名:字段定义不要用某些语言中的关键字;
  • 获取数据方式:推还是拉;
  • 环境变量:测试环境和生产环境的ServerUrl一定要区分开;
  • 安全控制:白名单和黑名单等
  • 接口性能:数据量大用gzip压缩,能用缓存的用缓存,减少代码体积等.

与第三方对接不要炫技耍酷,有的分明是resetful请求,然后整个curl命令。有必要吗?该说明的一定要说明白不要让对方去思考,你要把对方当成"白痴"的想法,看下面图片,阿里云的API文档真的很优秀,真是把开发者当成了"白痴".

对接了那么多系统,依然过不好自己的程序生涯?为什么“听过很多道理,依然过不好这一生”?不是道理的问题,是你的问题。你是在学道理,还是在学现象?就算你是在学道理,你是否找到了第一性原理?即使你找到了第一性原理,当原理和现象冲突的时候,你是相信看到的现象还是坚守原理?共勉!

本文分享自微信公众号 - 只喝牛奶的杀手(killerhub),作者:只喝牛奶的杀手

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring AOP切面表达式详解

    在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点"

    只喝牛奶的杀手
  • 简单web服务器的实现思路

    回想一下一个http请求的过程,你在浏览器输入xxx.com,经过域名解析 --> 发起tcp的3次握手 --> 建立tcp连接后发起http请求 --> 服务...

    只喝牛奶的杀手
  • 事件溯源模式

    使用只追加存储来记录对数据采取的完整系列操作,而不是仅存储域中数据的当前状态。 该存储可作为记录系统,可用于具体化域对象。 这样一来,无需同步数据模型和业务域,...

    只喝牛奶的杀手
  • AJAX 原理与 CORS 跨域

    https://segmentfault.com/a/1190000011549088

    黄泽杰
  • 注意:字符串substring方法在jkd6,7,8中的差异。

    标题中的substring方法指的是字符串的substring(int beginIndex, int endIndex)方法,这个方法在jdk6,7是有差异的...

    Java技术栈
  • C# ini文件操作【源码下载】

    来源:http://www.cnblogs.com/polk6/p/6052908.html

    跟着阿笨一起玩NET
  • 创建Laravel项目的几种方法

    lilugirl
  • Kubernetes因限制内存配置引发的错误

    今天对一个pod进行内存资源调整后, 一直卡在ContainerCreating的状态, 执行describe命令查看该 Pod 详细信息后发现如下 。

    程序员同行者
  • 这些人工智能顶级会议明年移师中国!不出国门也能「华山论剑」

    AI 科技评论按:上周发布的《斯坦福全球 AI 报告》(http://cdn.aiindex.org/2018/AI%20Index%202018%20Annu...

    AI科技评论
  • LeetCode 290. Word Pattern

    ShenduCC

扫码关注云+社区

领取腾讯云代金券