跳转至

引言

注意

首次阅读本文档,请严格按照文档顺序进行阅读,以便可以更加全面的理解如何使用链外接口协同组件,谢谢。

提示

本项目主要参考了专利《一种可举证的接口协同方法及系统》,并通过RepChain区块链进行实现,提供了接入中间件的存证方式与示例。

一、为什么会有接口协同组件

在开发人员开发过程中,难免会遇到如下情况:

  1. 调用其他系统的接口时,需要双方协调。
  2. 接口提供方文档不清晰。
  3. 接口调用时,由于一些原因,调用方无法正确拿到调用数据,进而双方产生矛盾却无从考证。

二、链外接口协同组件

接口协同组件旨在解决上述等问题而产生,并提供如下方案:

  1. 规范约束了统一的IDL (接口描述语言),给服务方在提供接口定义时提供了统一规范。
  2. 服务方及调用方均需要在区块链上进行登记,登记后按照接口描述语言进行实现即可完成调用。
  3. 接口调用时需要双方对数据进行签名,并存证于区块链上。保证了在接口调用中,若出现意料之外的问题时有据可查。
  4. 双方存证于区块链的数据均为传输数据的HASH取值,并且由双方进行签名后存证,保证了敏感数据的安全性和可靠性。

三、术语

同步请求

指调用方调用服务方接口时,可直接通过当前请求获取数据。无需等待服务方推送。

异步请求

指调用方调用服务方接口时,服务方会返回一个应答信息,但应答信息中不包含调用方所需要的数据。

服务方需要通过访问调用方的接口进行数据推送,再返回调用方所需要的数据。此类场景常常出现在审批流程等业务中。

数据签名

通过RepChain注册的证书和私钥对数据进行签名,签名算法使用接口定义中所定义的算法。

数据验签

通过对签名数据的证书验证,判断数据签名是否由当前证书持有者进行签名。

交易对象

提交给区块链的数据结构,由区块链合约进行约束。与普通后台接口的接口请求参数类似,不同点在于需要签名后提交,且通过RepChain的Api提交给区块链。

四、 接口协同存证方式

接入中间件

五、存证方式

使用中间件实现接口协同存证提供了如下几种代码示例:

  1. 同步请求

    • 同步单次调用服务方

    此类为最常见的场景,即请求后则得到返回数据。

    • 同步多次调用服务方

    此类场景为当数据量过大,一次请求无法获取全部所需数据时,需要多次请求服务方接口。

  2. 异步请求

    • 异步单次调用请求方,请求方返回单次数据

    此类场景为当调用服务方数据时,服务方需要有流程审批等原因,无法同步返回数据。此类情况需要在接口定义时,定义应答方接口规范,并让调用方进行接口实现。

    • 异步多次调用请求方,请求方多次返回数据

    此类场景为当调用服务方数据时,服务方需要有流程审批等原因,无法同步返回数据,且数据量较大。此类情况需要在接口定义时,定义应答方接口规范,并让应答方进行接口实现。

回到页面顶部