本发明涉及一种基于区块链智能合约的api质量检测系统及其方法。
背景技术:
api中文名称为应用程序结构,是一些预先定义的函数或指软件系统不同组成部分衔接的约定,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码或理解内部工作机制的细节。
在目前的api市场中,更多的是由平台方提供一个api元数据描述标准供api提供方参考,api提供方根据接入标准完成定制化修改,平台方通过定时访问api以校验api的有效性和质量,而api的数据质量一般是api使用方根据自己的实际业务作出判断。
但是由于api市场众多,标准不一,api提供方需要适配各个api市场以满足标准,这加重了api提供方的负担;再有由于api具有无法溯源的特点,如果遇到溯源性问题纠纷,对平台的公信力要求较高,api提供方对于api的修正通常会存储于数据库中,需要依赖平台的远见性来针对api的更改逐条记录到数据库中,并且需要人为保证数据库内的数据不被篡改,这存在一定风险性;最后各个api平台上提供的api,如天气、四要素认证等,需要api使用方在使用过程中判断其数据和结果的质量高低,每个api使用方的质量高低要求不同,因此api的返回数据的质量也缺乏一个统一的质量标准。
技术实现要素:
本发明目的在于针对现有技术所存在的不足而提供一种基于区块链智能合约的api质量检测系统的技术方案,利用了区块链上数据不可篡改、溯源的特性,能够解决目前api提供方元数据更改、api返回数据有误、api不可访问等带来的损失,并且能通过区块链的溯源功能,明确责任方。
为了解决上述技术问题,本发明采用如下技术方案:
一种基于区块链智能合约的api质量检测系统,其特征在于:包括联盟链、api提供方客户端、api第三方质量检测机构客户端和api使用方客户端,api提供方客户端和api第三方质量检测机构客户端均通过网络与中心服务、联盟链通信,api使用方客户端通过联盟链共享api信息,联盟链由多个连接网络的业务节点和共识服务集群组成;采用联盟链的区块链技术,将api的数据共享至联盟链间受信任的组织之间,引入了第三方质量检测机构,在原有api的状态检测之外,是对api数据的质量建立的标准质量体系,保障在联盟链间共享的api是健康且高质量的,由于联盟链的区块链技术具有可溯源的特点,能够追溯api变更的历史记录,在处理api变更导致的业务故障责任划分时,能够提供可信的依据。
进一步,中心服务设有与网络连接的服务器,服务器设有用来管理和存储用户信息、联盟链授权信息、api元数据信息及常规业务信息的存储模块和处理模块;联盟链授权信息属于组织授权体系,通过该授权信息,受信任的组织可从联盟链中共享到api信息,存储模块以数据库的形式存在,能够存储本系统中的多种信息。
进一步,联盟链通过ca服务进行授权和证书签发;保证了联盟链的可信性,以及其数据不可篡改、容易溯源的特性。
进一步,共识服务集群排列形成区块链,业务节点通过网络接收和发送区块链内的账本变更信息。
采用如上述一种基于区块链智能合约的api质量检测方法,其特征在于:包括如下步骤:
a)api提供方客户端录入api元数据和自检:
(a1)录入api元数据;
(a2)录入api自检的测试用例;
(a3)发送请求至中心服务处理模块中;
(a4)中心服务处理模块反馈测试结果;
(a5)若服务中心处理模块反馈的测试结果合格,则保存api元数据至中心服务存储模块中,若不合格由api提供方整改并返回至步骤a1中重新录入正确的api元数据;
b)api第三方质量检测机构对通过api提供方自检的api进行质量检测:
(b1)从中心服务存储模块中获取通过api提供方自检通过的api列表;
(b2)针对业务场景录入测试用例;
(b3)发送请求至中心服务;
(b4)中心服务反馈检测结果;
(b5)若中心服务反馈的检测结果均通过后,则将api列表保存至联盟链中,若未通过,重新将其发回中心服务,中心服务将结果反馈至api提供方客户端,由api提供方整改并重新录入正确的api元数据;
c)api使用方通过区块链技术从联盟链中共享已通过质量检测的api列表。
进一步,在步骤b中,质量检测是针对api的返回数据,从api返回数据的字段齐全性、返回数据是否符合业务含义进行质量检测。
进一步,在步骤b5和c中,将通过测试用例的api列表写入联盟链,并利用联盟链的特性将api共享给联盟链中的组织,构建了一个可信且高质量的api平台。
在每次api变更时,均需要经过api提供方自检、第三方质量检测机构检测,通过已有的测试用例检测的api列表才会被保存至联盟链中,保证了api的每次更新均需要向下兼容,避免了由于api提供方的随意变更api导致下游api使用方的业务系统崩溃。
本发明由于采用了上述技术方案,具有以下有益效果:
本发明中采用联盟链的区块链技术,将api的数据共享至联盟链间受信任的组织之间,引入了第三方质量检测机构,在原有api的状态检测之外,是对api数据的质量建立的标准质量体系,保障在联盟链间共享的api是健康且高质量的,由于联盟链的区块链技术具有可溯源的特点,能够追溯api变更的历史记录,在处理api变更导致的业务故障责任划分时,能够提供可信的依据,在每次api变更时,均需要经过api提供方自检、第三方质量检测机构检测,通过已有的测试用例检测的api列表才会被保存至联盟链中,保证了api的每次更新均需要向下兼容,避免了由于api提供方的随意变更api导致下游api使用方的业务系统崩溃。
本发明利用了区块链上数据不可篡改、溯源的特性,能够解决目前api提供方元数据更改、api返回数据有误、api不可访问等带来的损失,并且能通过区块链的溯源功能,明确责任方。
附图说明
下面结合附图对本发明作进一步说明:
图1为本发明中一种基于区块链智能合约的api质量检测系统的系统图;
图2为本发明中api质量检测系统的流程图。
具体实施方式
如图1和图2所示,为本发明一种基于区块链智能合约的api质量检测系统,包括联盟链、api提供方客户端、api第三方质量检测机构客户端和api使用方客户端,api提供方客户端和api第三方质量检测机构客户端均通过网络与中心服务、联盟链通信,api使用方客户端通过联盟链共享api信息,联盟链由多个连接网络的业务节点和共识服务集群组成;采用联盟链的区块链技术,将api的数据共享至联盟链间受信任的组织之间,引入了第三方质量检测机构,在原有api的状态检测之外,是对api数据的质量建立的标准质量体系,保障在联盟链间共享的api是健康且高质量的,由于联盟链的区块链技术具有可溯源的特点,能够追溯api变更的历史记录,在处理api变更导致的业务故障责任划分时,能够提供可信的依据。
中心服务设有与网络连接的服务器,服务器设有用来管理和存储用户信息、联盟链授权信息、api元数据信息及常规业务信息的存储模块和处理模块;联盟链授权信息属于组织授权体系,通过该授权信息,受信任的组织可从联盟链中共享到api信息,存储模块以数据库的形式存在,能够存储本系统中的多种信息。
联盟链通过ca服务进行授权和证书签发;保证了联盟链的可信性,以及其数据不可篡改、容易溯源的特性。
共识服务集群排列形成区块链,业务节点通过网络接收和发送区块链内的账本变更信息。
采用如上述一种基于区块链智能合约的api质量检测方法,包括如下步骤:
a)api提供方客户端录入api元数据和自检:
(a1)录入api元数据;
(a2)录入api自检的测试用例;
(a3)发送请求至中心服务处理模块中;
(a4)中心服务处理模块反馈测试结果;
(a5)若服务中心处理模块反馈的测试结果合格,则保存api元数据至中心服务存储模块中,若不合格由api提供方整改并返回至步骤a1中重新录入正确的api元数据;
b)api第三方质量检测机构对通过api提供方自检的api进行质量检测:
(b1)从中心服务存储模块中获取通过api提供方自检通过的api列表;
(b2)针对业务场景录入测试用例;
(b3)发送请求至中心服务;
(b4)中心服务反馈检测结果;
(b5)若中心服务反馈的检测结果均通过后,则将api列表保存至联盟链中,若未通过,重新将其发回中心服务,中心服务将结果反馈至api提供方客户端,由api提供方整改并重新录入正确的api元数据;
c)api使用方通过区块链技术从联盟链中共享已通过质量检测的api列表。
在步骤b中,质量检测是针对api的返回数据,从api返回数据的字段齐全性、返回数据是否符合业务含义进行质量检测。
在步骤b5和c中,将通过测试用例的api列表写入联盟链,并利用联盟链的特性将api共享给联盟链中的组织,构建了一个可信且高质量的api平台。
在每次api变更时,均需要经过api提供方自检、第三方质量检测机构检测,通过已有的测试用例检测的api列表才会被保存至联盟链中,保证了api的每次更新均需要向下兼容,避免了由于api提供方的随意变更api导致下游api使用方的业务系统崩溃。
本发明由于采用了上述技术方案,具有以下有益效果:
本发明中采用联盟链的区块链技术,将api的数据共享至联盟链间受信任的组织之间,引入了第三方质量检测机构,在原有api的状态检测之外,是对api数据的质量建立的标准质量体系,保障在联盟链间共享的api是健康且高质量的,由于联盟链的区块链技术具有可溯源的特点,能够追溯api变更的历史记录,在处理api变更导致的业务故障责任划分时,能够提供可信的依据,在每次api变更时,均需要经过api提供方自检、第三方质量检测机构检测,通过已有的测试用例检测的api列表才会被保存至联盟链中,保证了api的每次更新均需要向下兼容,避免了由于api提供方的随意变更api导致下游api使用方的业务系统崩溃。
本发明利用了区块链上数据不可篡改、溯源的特性,能够解决目前api提供方元数据更改、api返回数据有误、api不可访问等带来的损失,并且能通过区块链的溯源功能,明确责任方。
以上仅为本发明的具体实施例,但本发明的技术特征并不局限于此。任何以本发明为基础,为实现基本相同的技术效果,所作出地简单变化、等同替换或者修饰等,皆涵盖于本发明的保护范围之中。