JAVA开发过程中优雅地和第三方公司进行API对接需要注意的点!

前言

        通常我们的系统在与第三方系统对接的时候,有许多种方式实现:系统api接口、共享缓存、数据库共享、调用消息队列、页面跳转、共享数据文件等,在实际生产中,系统api接口的对接方式是占了很大部分的。

 

        最近,我负责公司电商系统关于多家第三方业务的对接,采用的对接方式也都是系统api接口对接,在这过程中有太多槽点需要去注意了。下面,介绍需要注意的几个大点。

 

非技术对接需要注意的点:

        与第三方平台对接的时候,一定要积极和谐友善沟通,要是自己沟通不融洽,对自己的开发进度以及整体团队的对接进度就得往后延期了。

        还有就是沟通方向要在同个频道,不然可能带来的影响就是:自己写完api文档之后,发给对方之后,发现写得完全就不在方向上,那恭喜你,用加班来增加自己的时间成本吧。

 

技术对接需要注意的点:

 

1. 网络协议方面

        尽量规范对方使用https协议,因为https是http协议的升级版本,可通过对网络浏览器和网络服务器中间传输的数据进行加密,安全性方面还是比http协议高很多的,从谷歌规范来说,也是使用https协议的。

 

2.接口请求方面

        接口请求类型看具体业务场景规定好,以及入参的数据类型要规定好,这里如果使用POST请求的时候,基本是规定数据传参格式为:application/json , Json格式的入参可以支持参数值拓展,对于之后的业务迭代还是友好的。

 

3.接口签名校验

        对接口的参数进行加密,然后被调用系统可以使用双方规定好的解密方式校验接口的参数是否有效,这样能够大有利的避免许多不必要的麻烦,假如人家知道你的明文参数,拿着这样的数据压测你的接口的话,对系统是能造成极大伤害的,服务器连接数一直在被消耗着。

        在加密解密方面,有对称加密以及非对称加密两种方式。从对比上来说,非对称加密总体安全性比较高。所以在加密上,我尽量使用非对称加密。

 

4.日志记录

        对于我们接口接收到的数据,以及解析之后的参数值,都要用日志记录下来,以防在线上服务器出问题的时候,我们找不到对应的入参数据去排查线上问题。

 

5.幂等校验

        在日常的系统api调用中,会可能由于网络波动等原因,同一个数据会调用多几次接口,我们要在实现具体业务操作之前,加一个幂等校验,例如可以对该数据中的唯一值做记录,要是先查到,就不继续实现具体业务操作,而是返回响应成功(注意:这里幂等校验要查找到该数据已经有成功调用过了,就直接返回响应成功,而不是响应失败等其他提示信息)。

 

6.重试机制

        在目前我们的电商系统中,由于大促等促销活动有可能随时产生非常大的并发,要这时候要是第三方系统刚好调用我们系统的api接口,我们的服务器刚好短暂宕机,那这可能会造成大量的数据丢失。这中间是涉及到钱的,要真的发生了,可能狗头不保,直接GG。

        这时候,为了保住狗头,还是需要让对方去做接口的重试机制,要是接口响应不成功,可以规定之后一定的频率回调我们的接口,要是最后一次也是调用不成功的话,基本是要把调用不成功的接口信息落库,存到mysql、redis、或者es等数据源,等事后人工干预。

 

7.防伪机制

为了更安全的系统对接,我们还可以让调用我们接口的第三方,提供多一个接口,去校验一段时间内回传给我们的数据,他们那边是否存在。如果有数据不存在,就要开始排查是不是哪里出问题了~

 

8.安全机制

到了对接的业务上线之后,接口加密的数据有可能是会被不明第三方抓包以及破译的,这时候更加需要从其他方面去提升安全等级,例如:定期更换密钥。除了防住黑的一方,也有白的一方需要防范,白是谁,当然是指我们这些本身开发这块业务的开发者,这个怎么防范,只能提高自己本身的职业素质了

 

更多Java后端开发干货,可以关注公众号「 红橙呀 」。

JAVA开发过程中优雅地和第三方公司进行API对接需要注意的点!_第1张图片

你可能感兴趣的:(Java,java,接口,http,网络,后端)