本发明专利技术公开了一种基于JSON树的可视化API组合方法及系统,其中,方法包括以下步骤:在同步解释执行时,根据父节点的API执行结果确定要执行的孩子节点,并且根据预设的MVEL脚本机制进行http请求响应消息的格式转换,以将不同风格的接口统一封装;在异步解释执行时,引入RabbitMQ消息队列,并且引入Redis缓存以及多线程机制,以实现事件的订阅及发布机制。该方法可以将不同风格的接口快速统一封装,并有效提高整个系统的性能,简单易实现。
Visual API composition method and system based on JSON tree
【技术实现步骤摘要】
基于JSON树的可视化API组合方法及系统
本专利技术涉及信息技术及数据业务
,特别涉及一种基于JSON树的可视化API组合方法及系统。
技术介绍
相关技术,一种基于JSON(JavaScriptObjectNotation,JS对象简谱)树的可视化API(ApplicationProgrammingInterface,应用程序接口)组合系统及方法,在可视化组合模块中通过可视化拖拽的方式生成基于JSON的预定义模板的树形流程文件,并封装成API服务对外发布。在第三方开发者调用向外暴露的组合API服务时,流程树解释器模块用于组合API服务业务流程定义文件的自动化翻译执行,并根据预订的组合流程调用原子API模块服务,以完成完整的业务流程。流程树解释器模块支持基于响应状态码和请求响应值的同步解释执行和基于事件发布/订阅的异步解释执行。然而,在同步解释执行时,根据父节点的API执行结果(请求响应状态码,请求响应值)来决定一个应该要执行的孩子节点,不支持将父节点的响应值作为子节点的请求参数,且只支持一种HTTP请求,响应协议,在组合时存在很大的限制。在异步解释执行时,使用Node.JS中的系统自带的EventEmitter模块实现事件的订阅及发布机制,存在单机限制,无法进行多进程或者集群部署。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的一个目的在于提出一种基于JSON树的可视化API组合方法,该方法可以将不同风格的接口快速统一封装,并有效提高整个系统的性能,简单易实现。本专利技术的另一个目的在于提出一种基于JSON树的可视化API组合系统。为达到上述目的,本专利技术一方面实施例提出了一种基于JSON树的可视化API组合方法,包括以下步骤:在同步解释执行时,根据父节点的API执行结果确定要执行的孩子节点,并且根据预设的MVEL脚本机制进行http请求响应消息的格式转换,以将不同风格的接口统一封装;在异步解释执行时,引入RabbitMQ消息队列,并且引入Redis缓存以及多线程机制,以实现事件的订阅及发布机制。本专利技术实施例的基于JSON树的可视化API组合方法,引入MVEL脚本机制支持协议动态转换,用于http请求响应消息的格式转换,逻辑处理,将不同风格的接口快速统一封装;引入RabbitMQ消息队列,取代EventEmitter模块,同时为了提高整个系统的性能,引入Redis缓存以及多线程机制。另外,根据本专利技术上述实施例的基于JSON树的可视化API组合方法还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,所述根据预设的MVEL脚本机制进行http请求响应消息的格式转换,包括:在JSON树节点中,添加mvelScript属性保存协议转换脚本。进一步地,在本专利技术的一个实施例中,所述根据预设的MVEL脚本机制进行http请求响应消息的格式转换,具体包括:组合API时,编写协议转换脚本,且所述脚本由MVEL表达式语言编写,指定协议转换方式;当每个原子API执行完毕,将响应头部和响应体封装成Map数据结构;执行引擎调用脚本执行引擎执行相关脚本完成协议转换,封装成Map上下文返回,以作为下一个原子API的请求头部和请求参数。进一步地,在本专利技术的一个实施例中,还包括:通过流程树执行器支持基于响应状态码和请求响应值的同步解释执行和基于事件发布/订阅的异步解释执行。进一步地,在本专利技术的一个实施例中,所述在异步解释执行时,引入RabbitMQ消息队列,并且引入Redis缓存以及多线程机制,包括:在解释执行组合API时,遇到异步API,组合API直接返回,并在响应头部中设置唯一标识;在消息队列的队列中订阅组合API执行所需的相关消息事件,其中,在任一时刻消息发布者在消息中间件的相关队列下发布消息事件,触发异步API执行,完成API的异步调用。为达到上述目的,本专利技术另一方面实施例提出了一种基于JSON树的可视化API组合系统,包括:格式转换模块,用于在同步解释执行时,根据父节点的API执行结果确定要执行的孩子节点,并且根据预设的MVEL脚本机制进行http请求响应消息的格式转换,以将不同风格的接口统一封装;引入模块,用于在异步解释执行时,引入RabbitMQ消息队列,并且引入Redis缓存以及多线程机制,以实现事件的订阅及发布机制。本专利技术实施例的基于JSON树的可视化API组合系统,引入MVEL脚本机制支持协议动态转换,用于http请求响应消息的格式转换,逻辑处理,将不同风格的接口快速统一封装;引入RabbitMQ消息队列,取代EventEmitter模块,同时为了提高整个系统的性能,引入Redis缓存以及多线程机制。另外,根据本专利技术上述实施例的基于JSON树的可视化API组合系统还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,所述格式转换模块进一步用于在JSON树节点中,添加mvelScript属性保存协议转换脚本。进一步地,在本专利技术的一个实施例中,所述格式转换模块具体用于组合API时,编写协议转换脚本,且所述脚本由MVEL表达式语言编写,指定协议转换方式;当每个原子API执行完毕,将响应头部和响应体封装成Map数据结构;执行引擎调用脚本执行引擎执行相关脚本完成协议转换,封装成Map上下文返回,以作为下一个原子API的请求头部和请求参数。进一步地,在本专利技术的一个实施例中,还包括:流程树解释器模块,用于通过流程树执行器支持基于响应状态码和请求响应值的同步解释执行和基于事件发布/订阅的异步解释执行。进一步地,在本专利技术的一个实施例中,所述引入模块进一步用于在解释执行组合API时,遇到异步API,组合API直接返回,并在响应头部中设置唯一标识;在消息队列的队列中订阅组合API执行所需的相关消息事件,其中,在任一时刻消息发布者在消息中间件的相关队列下发布消息事件,触发异步API执行,完成API的异步调用。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为根据本专利技术实施例的基于JSON树的可视化API组合方法的流程图;图2为根据本专利技术实施例的JSON树流程节点属性示意图;图3为根据本专利技术实施例的JSON协议转soap协议示例;图4为根据本专利技术实施例的解释器的执行流程图;图5为根据本专利技术实施例的基于消息队列的事件发布/订阅的异步解释执行示意图;图6为根据本专利技术实施例的异步解释执行流程图;图7为根据本专利技术实施例的基于JSON树的可视化API组合系统的结构示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功本文档来自技高网...
【技术保护点】
1.一种基于JSON树的可视化API组合方法,其特征在于,包括以下步骤:/n在同步解释执行时,根据父节点的API执行结果确定要执行的孩子节点,并且根据预设的MVEL脚本机制进行http请求响应消息的格式转换,以将不同风格的接口统一封装;/n在异步解释执行时,引入RabbitMQ消息队列,并且引入Redis缓存以及多线程机制,以实现事件的订阅及发布机制。/n
【技术特征摘要】
1.一种基于JSON树的可视化API组合方法,其特征在于,包括以下步骤:
在同步解释执行时,根据父节点的API执行结果确定要执行的孩子节点,并且根据预设的MVEL脚本机制进行http请求响应消息的格式转换,以将不同风格的接口统一封装;
在异步解释执行时,引入RabbitMQ消息队列,并且引入Redis缓存以及多线程机制,以实现事件的订阅及发布机制。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的MVEL脚本机制进行http请求响应消息的格式转换,包括:
在JSON树节点中,添加mvelScript属性保存协议转换脚本。
3.根据权利要求1所述的方法,其特征在于,所述根据预设的MVEL脚本机制进行http请求响应消息的格式转换,具体包括:
组合API时,编写协议转换脚本,且所述脚本由MVEL表达式语言编写,指定协议转换方式;
当每个原子API执行完毕,将响应头部和响应体封装成Map数据结构;
执行引擎调用脚本执行引擎执行相关脚本完成协议转换,封装成Map上下文返回,以作为下一个原子API的请求头部和请求参数。
4.根据权利要求1所述的方法,其特征在于,还包括:
通过流程树执行器支持基于响应状态码和请求响应值的同步解释执行和基于事件发布/订阅的异步解释执行。
5.根据权利要求1所述的方法,其特征在于,所述在异步解释执行时,引入RabbitMQ消息队列,并且引入Redis缓存以及多线程机制,包括:
在解释执行组合API时,遇到异步API,组合API直接返回,并在响应头部中设置唯一标识;
在消息队列的队列中订阅组合API执行所需的相关消息事件,其中,在任一时刻消息发布者在消息...
【专利技术属性】
技术研发人员:鄂海红,宋美娜,林贻民,胥香宇,王晓晖,
申请(专利权)人:北京邮电大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。