乐于分享
好东西不私藏

如何拆解接口文档

如何拆解接口文档

如何拆解接口文档

一、什么场景下会有接口文档

接口是银行与客户系统信息交互的方式,在分析评估系统对接相关需求时,接口文档是必不可少的技术桥梁。

在实际业务中,大型客户往往需要对接多家银行,因此会要求银行按照客户自定义的接口标准进行改造。

客户会将具体的对接规则写入接口文档,这时银行便需要主动改造系统适配客户的相关接口。谁提供接口文档,谁就掌握技术主动权

二、接口对接前提:网络

银行网络通常通过防火墙、路由器等设备设置明确的网络边界,将内部网络与外部网络(如互联网、第三方网络)严格隔离。因此在与第三方机构合作时,需要先建立专门的接入通道。

方法一:专线对接

适用场景:监管机构、政府单位、大型合作机构等定制需求

优点

专线为专用网络通道,不受公共网络拥堵、故障或干扰影响
数据传输稳定可靠,确保银行与企业系统间通信的连续性
通过物理隔离、加密传输、身份认证等安全措施,保障数据的机密性、完整性和可用性

缺点

需要协调银行、电信运营商等多方,成本高昂
部署复杂,对双方的运维要求高
需配备专业技术人员负责专线设备的维护、监控和故障处理

方法二:前置机方案

适用场景:企业银企直连

前置机是一台专门用来和银行系统对接的”中转站”。企业无法直接连接银行系统,企业通过先配置前置机,与银行进行数据交互。

举个例子,需要从 A 国(企业)去往 C 国(银行),但 C 国为了保护人民安全,严格审查出入境,因此几乎不对外开放,无法直飞,需要先飞到C 国相邻的 B 国,从 B 国去 C 国。

优点:相比专线对接,操作相对简易,成本可控缺点:依赖前置机和公共网络,稳定性无法保障

注意:现在部分银行开始提供免前置的方案,能提高对接效率

三、明确接口通讯方式

在接口文档中,”通讯协议”、”数据编码”、”数据格式”和”安全加密解密算法”是四个关键概念,需要重点关注。

一、通讯协议

定义:指客户端与服务端之间建立连接、传输数据所遵循的网络通信规则,决定了数据如何在网络中传输、如何建立/关闭连接、是否加密等。

常见类型

协议
说明
HTTP/HTTPS
最常见的Web接口协议,基于请求-响应模型;HTTPS是HTTP+TLS加密
TCP/UDP
传输层协议,常用于自定义二进制协议或实时通信
WebSocket
全双工长连接协议,适合实时双向通信(如聊天、行情推送)
FTP/SFTP
用于文件传输;SFTP基于SSH,更安全

二、数据编码

定义:指文本数据在传输或存储时转换为字节序列的方式,主要用于处理多语言字符(如中文、日文)。

作用:解决”字符如何变成字节”的问题,避免乱码。

常见类型

编码
说明
UTF-8
最广泛使用的编码,兼容ASCII,支持全球所有语言,推荐默认使用
GBK/GB2312
中文编码,主要用于旧系统(如某些银行接口),不推荐新项目使用
Base64
严格来说不是字符编码,而是一种二进制转文本的编码方式,常用于在文本协议(如JSON)中嵌入图片、文件等二进制数据

三、数据格式

定义:指业务数据在传输时的结构化表示方式,即数据的”语法”或”组织形式”。

作用:解决”数据长什么样”的问题,便于双方解析。

常见类型

格式
说明
JSON
轻量、易读、广泛支持,Web API默认首选
XML
结构严谨,支持命名空间,常见于传统企业系统(如SOAP WebService)

四、安全加密解密算法

在数据传输过程中,为保证数据安全,会将传输的数据进行加密;数据使用方收到数据后需要先解密才能处理,因此双方需要提前约定加密解密算法。

加密方法对比

加密方法
说明
对称加密
加密和解密使用同一个密钥,常见算法包括AES(高级加密标准,最常用)、DES(数据加密标准,安全性较弱)、3DES(三重DES,增强安全性)、SM4(国密算法)
非对称加密
使用公钥加密、私钥解密(或反之),能解决密钥分发问题,适合数字签名和认证。常见算法包括RSA(最常用)、ECC(椭圆曲线加密,密钥短、安全性高)、DSA(数字签名算法)
数字签名与证书
数字签名:使用私钥对数据哈希值进行加密数字证书:由CA机构颁发,确保公钥安全

总结对比表

概念
关注点
常见值举例
通讯协议
如何传输
HTTP, HTTPS, WebSocket, TCP
数据编码
字符如何变字节
UTF-8, GBK, Base64
数据格式
数据结构
JSON, XML, Form, Protobuf
安全加密
如何保护数据
AES/DES/SM4/RSA等

为什么需要了解这些如果发现使用的是老旧接口技术,可能存在被淘汰的风险,需要及时进行技术升级和改造。

四、分析具体接口

接口分析的核心是分析对应业务场景与数据流转,但某些时候接口文档里的描述里存在一部门专业名词,比如:

同步与异步

同步(实时):同一时间处理,立即返回结果
异步(批量):不能实时处理,处理完成后通过回调或其他方式告知结果,通常需要新增接口对接

拉取与推送

推送:一般接口遵从谁是数据上游方,推送给下游
拉取:如果1个上游方对应N个下游方,上游方通常会提供拉取接口,下游方主动来拉取数据
优势:减少上游方的开发工作量

发包与丢包

发包:数据包的发送过程
丢包:在网络传输过程中数据包丢失的现象

接口上下游关系

接口上游:数据的提供方
接口下游:数据的接收方