管理进化

api接口怎么对接


在平时工作中,经常会遇到的一种场景是:A公司要对接B公司的API方法,本篇是站在A公司的角度,去对接B公司API接口的实战。

一、背景

在平时工作中,经常会遇到的一种场景是:A公司要对接B公司的API方法,这时,A公司就要阅读B公司的接口文档,从接口文档中找到自己需要对接的API,并根据接口文档的要求,完成编码工作,最终完成对接工作。

本篇是站在A公司的角度,去对接B公司API接口的实战。

二、了解B公司接口的基础约定

一般情况下,B公司都会给出以下类似约定来满足基础对接,并且会提供测试环境和正式环境的两套信息。

appkey:A公司商户平台 id

appsecret:A公司商户平台 secret

三、基础域名

一般情况下,B公司会提供测试环境和生产环境两个基础域名。

例如:

测试环境 : https://api-b-dev.com.cn

生产环境 : https://api-b-prod.com.cn

四、请求及相应格式说明

一般情况下,B公司会提供请求及相应的基础格式说明。

例如:

1、请求方式

post

2、请求消息格式

application/json

3、响应消息格式

application/json

4、请求公共参数

例如,B公司有以下要求

所有接口均需要以 Http Header 方式传递以下参数;

当然,不同的公司提供的参数各不相同,因公司而异。

5、响应/回调参数说明

例如:B公司所有API都有响应,并且有的API还有回调响应,不论是响应还是回调响应,它们的参数格式都一样。

6、针对异步回调的说明

例如:B公司对异步回调说明如下:

异步回调:

某些特定的接口需要异步返回结果,因此需商户A提供一个回调地址,将其进行base64 编码后,配置在 Http 请求 Header 中的 callback_url 里。

应答机制:

应答机制是指当商户A收到B公司数据通知时,必须回写 success 字符串,不区分大小写,B公司收到该“ success”,便认为商户A已收到通知; 否则会继续重复请求回调接口 3 次, 时间间隔为 1s, 5s, 30s。如果 4 次都访问不通,则会间隔 3h 继续轮询回调。

回调解密:

回调使用 aes 加密,需解密后使用。为避免由于网络波动造成回调失败,长时间未收到回调,请主动查询。

7、请求体加密说明及示例

数据采用AES加密,加密后作为data的值。

示例:

加密前:

加密后:

8、回调解密说明以及示例

数据采用AES解密,解密data值部分,解密后是json字符串

解密前:

解密后:

9、一般公司B还会对code值进行说明。

五、确定要对接哪些API

一般情况下,公司B会针对某个项目提供必要的API,我们往往只需要对接少部分API接口,因此,首先确认要对接哪些API方法。我们只需要按照API的要求进行对接即可。

六、根据API文档,编写一些基础工具类

工具类分两类。一类工具类,公司B会提供DEMO,我们拿来用即可。另外一类就需要自己根据API要求自己编写了。

七、根据API文档,编写必要的DTO

针对每个API,主要包含请求DTO,响应DTO,回调响应DTO,这个就要跟踪API要求,编写满足要求的DTO。

当然有些DTO是可以抽象成一个类,例如一般响应DTO和回调响应DTO都是一样的,这个时候就可以抽象为一个DTO了。

八、针对每个API方法,进行对接

做好以上准备工作,就可以一个个接口进行对接了。可采用下面方式一个一个接口进行对接。


最后,推荐我们的管理工具给大家

智齿客服