介绍
针对某一API协议与第三方系统间的适配,如:适配捷顺与蓝卡的开闸接口
前置条件
分析要对接的子系统后,进行接口协议模型抽象定义,把请求头、请求参数、返回结果、错误码逐一声明到API套件及每个协议,并把API套件上架。
操作示例
1. 点击适配按钮
我们可以看到协议适配界面中,主要有参数预览、在线调试等功能。
参数预览,主要是查看前面在配置/编辑协议时填写的信息。
2. 请求脚本
请求脚本目前仅支持Groovy动态语言,通过Java内置包实现的ScriptEngine接口来实现适配器代码的执行调用。
注意:每次编写的新的脚本,请务必先保存后再进行调试。
3. 在线调试
在线调试功能会根据协议请求头,请求参数等值执行你所编写的脚本。如果你编写的脚本中存在返回值,执行成功后,会有响应信息显示。
X-Sign签名的生成规则: md5(请求参数[即body] + X-Config-Id + timestamp + SecretKey)
请求头说明:
X-Client-Id
说明:平台根据clientId来验证api套件是否具有协议服务权限。
组成:对应clientId字段。X-Timestamp
说明:平台根据时间戳来验证数据是否被篡改。
组成:当前时间戳。X-Config-Id
说明:平台会根据configId来获取动态配置的请求参数。
组成:对应configId字段。(租户适配器参数配置的主键id)X-Sign
说明:平台使用签名来校验客户端请求的完整性以及合法性。
组成规则:
md5(参数+适配器配置ID+时间缀+Secure)
md5(参数+configId+timestap+Secure)X-Callback
说明:异步的回调地址
以下是在线调试过程中需要注意的事项:
- 每次点击调试按钮都会生成新的SecureKey,并且根据时间戳重新生成签名。
- 单次调试的时间不能超过2分钟,2分钟后请求会过期,这时候请刷新时间戳,重新生成签名(在真实场景中,单次调用同样需要刷新时间戳,重新生成签名)
- 单次调试的SecureKey使用时间不能超过2个小时。
4. 请求脚本获取适配器参数
通过param字段获取
5. 请求脚本获取请求参数
通过data字段获取
6. 请求脚本获取请求头
通过header字段获取
7. 请求脚本获取缓存对象
在请求脚本中想要通过缓存存储数据,可以使用cache对象。
cache对象可以使用的方法:
set(key, value, timeoutSeconds) timeoutSeconds数据类型为int类型,时间单位为秒。
get(key)