CN116627486B - 简洁配置型rest接口管理与消息转换方法和装置 - Google Patents
简洁配置型rest接口管理与消息转换方法和装置 Download PDFInfo
- Publication number
- CN116627486B CN116627486B CN202310912452.6A CN202310912452A CN116627486B CN 116627486 B CN116627486 B CN 116627486B CN 202310912452 A CN202310912452 A CN 202310912452A CN 116627486 B CN116627486 B CN 116627486B
- Authority
- CN
- China
- Prior art keywords
- interface
- capability
- source api
- dsl
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 69
- 238000007726 management method Methods 0.000 claims abstract description 42
- 241000282836 Camelus dromedarius Species 0.000 claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims abstract description 15
- 238000012550 audit Methods 0.000 claims description 19
- 238000012423 maintenance Methods 0.000 claims description 18
- 230000009849 deactivation Effects 0.000 claims description 10
- 238000007639 printing Methods 0.000 claims description 7
- 230000008676 import Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 abstract description 5
- 238000002408 directed self-assembly Methods 0.000 description 54
- 238000005457 optimization Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000037396 body weight Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44594—Unloading
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明涉及数据处理技术领域,尤其涉及一种简洁配置型rest接口管理与消息转换方法和装置,通过源API接口注册组件,管理源API接口;通过能力接口配置组件,实现根据源API定制新能力,基于Camel框架技术,采用XML格式的路由DSL,并自定义各种报文格式转换处理器,耗时计算处理器,来达到路由的生成、发布、管理以及接口请求响应耗时的计算与打印输出的目的。打造一个易于集成的SDK或微服务组件,为需要进行简单rest接口管理、参数裁剪或消息转换,提供一种简洁、高效、易于集成的解决方法。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种简洁配置型rest接口管理与消息转换方法和装置。
背景技术
在企业级应用系统建设中,往往存在诸多的内外部交互类接口,通常有很多接口作为一个公共服务资源,并不针对某一个具体调用方系统,因此会存在许多调用方系统并不需要的接口字段,反而给接口使用方的开发或维护造成困扰。一种常见的解决方案是接入企业服务总线ESB,ESB提供了协议转换、消息增强、消息转换等一系列非常实用的能力,确实能够很好的解决上述问题。然而ESB作为一个企业应用集成设施,需要提供专有的软硬件资源来进行部署安装,以及配备专门的运维人员,无形中反而又增加了运行成本。特别是在去中心化,微服务化的今天,接口基本都采用了restful标准协议,往往不会再采用这种重量级的集中式ESB服务总线,无法解决消息增强或转换的问题,这就需要实现一种简易的可以快速的集成此rest接口管理能力至应用或服务中的设备。
发明内容
本发明提供了一种简洁配置型rest接口管理与消息转换方法和装置,打造一个易于集成的SDK或微服务组件,为需要进行简单rest接口管理、参数裁剪或消息转换,提供一种简洁、高效、易于集成的解决方法。
为了实现本发明的目的,所采用的技术方案是:简洁配置型rest接口管理与消息转换方法,方法包括如下步骤:
S1、提供可视化的源API接口注册组件,实现源API接口注册和维护;
S2、提供可视化的能力接口配置组件,选择源API接口,勾选编辑需要的出入参数字段,维护配置请求头响应头信息,实现能力接口的维护管理;
S3、能力接口的发布与停用:通过接口路由DSL生成工具,创建路由DSL文本字符串,提供路由加载和卸载,以及路由转发和报文转换能力;
S4、实现能力接口及源API接口的请求响应耗时计算与日志输出。
作为本发明的优化方案,在步骤S1中,具体实现步骤为:
S1-1、创建源API接口表、注册入参表、注册出参表、注册请求头表和注册响应头表,用于存储注册的源API接口数据;
S1-2、实现源API接口注册组件界面,提供源API接口分页查询,源API接口详细信息查看、编辑和删除;
S1-3、支持swagger文档的导入,通过解析标准的swagger文档,实现源API接口信息读取与快速注册配置。
作为本发明的优化方案,在步骤S2中,具体实现步骤为:
S2-1、参照步骤S1-1创建对应的能力接口表、能力入参表、能力出参表、能力请求头表和能力响应头表,用于存储根据注册的源API接口发布的能力接口;
S2-2、通过选择源API接口来创建能力接口配置界面,提供能力接口分页查询,能力接口详细信息查看、编辑和删除,并在页面上提供能力接口的发布和停用按钮。
作为本发明的优化方案,在步骤S3中,具体实现步骤为:
S3-1、创建接口路由DSL生成工具,根据能力接口配置组件配置的能力接口信息,生成路由DSL字符串;
S3-2、创建路由服务类,加载路由DSL文本生成路由服务,或者停用路由服务;
S3-3、创建Http请求报文类型转换处理器,完成raw报文体类型的能力接口向form-data类型转换,以适配请求体为form-data类型的源API接口;
S3-4、创建请求头和响应头与报文体格式转换处理器,根据能力接口配置的出入参数及头信息中的jsonPath,完成数据的获取与填充,实现格式转换;
S3-5、Camel组件根据路由DSL信息,完成路由的转发。
作为本发明的优化方案,在步骤S4中,具体实现步骤为:
S4-1、编写耗时计算处理器,用于计算接口响应耗时;
S4-2、实现能力接口和API接口请求计时埋点,以及在能力接口和API接口后分别装载耗时计算处理器,并在嵌入Camel的log组件实现格式化审计日志输出。
作为本发明的优化方案,在步骤S4-2中,具体实现步骤为:
S4-2-1:向耗时计算处理器CalcElapsedTimeProcess函数库传入headerKey,从请求头中header中获取记录的时间,再用当前系统时间与记录的时间相减,获得时间差值毫秒数,即为耗时,并写回header中;当前系统时间即操作系统的当前时间。
S4-2-2:在XML格式路由DSL的from端点后,通过Camel的setHeader组件往header中以能力接口编码为key写入当前系统时间;
S4-2-3:在路由DSL最后加入耗时计算处理器,用来计算能力接口响应耗时;追加Camel的log组件打印能力接口的编码、响应耗时、响应状态码;
S4-2-4:在路由DSL的to端点前,通过Camel的setHeader组件往header中以能力接口编码为key写入当前系统时间;在路由DSL的to端点后加入耗时计算处理器,用来计算源API接口响应耗时;再追加Camel的log组件打印to端点对应的源API接口的编码、响应耗时、响应状态码。
为了实现本发明的目的,所采用的技术方案是:简洁配置型rest接口管理与消息转换装置,装置包括源API接口注册模块、能力接口配置模块、接口路由DSL生成模块、能力接口发布/停用模块和审计日志模块,源API接口注册模块提供源API接口的注册管理;能力接口配置模块提供使用源API接口重定义参数发布能力接口以及对能力接口的各项管理,并提供能力接口的发布和停用操作入口;接口路由DSL生成模块提供根据能力接口配置信息,并整合各种请求处理器,生成Camel标准的XML格式接口路由DSL字符串;能力接口发布/停用模块使用接口路由DSL生成模块生成的路由DSL提供路由的查看和停用;审计日志模块提供能力接口及源API接口请求响应耗时的计算,以及审计日志的打印输出。
本发明具有积极的效果:本发明通过简洁配置型rest接口管理与消息转换方法和装置,实现对已有通用型接口,快速配置转换成符合特定业务需要的新接口,便于接口调用方理解、开发、维护。同时在发布的新接口中,可通过请求头配置如外部API接口Token鉴权参数等信息,以及在接口路由中实现接口审计日志的输出,简化接口的调用,以及为接口的调用统计监控提供必要的数据支持,适用于现今去中心化的restful协议的跨服务交互的应用场景。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图,其中:
图1是本发明方法的流程图;
图2是本发明装置的方框示意图;
其中:100、源API接口注册模块,200、能力接口配置模块,300、接口路由DSL生成模块,400、能力接口发布/停用模块,500、审计日志模块。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,简洁配置型rest接口管理与消息转换方法,方法包括如下步骤:
S1、提供可视化的源API接口注册组件,实现内外部源API接口注册和维护;
S2、提供可视化的能力接口配置组件,选择源API接口,勾选编辑需要的出入参数字段,维护配置请求头响应头信息,实现能力接口的维护管理;
出入参数字段是在S1中API注册时维护录入的。S2中勾选需要的参数,即实现裁剪,以及对原字段的重命名等。头信息维护与出入参维护相同。
S3、能力接口的发布与停用:通过接口路由DSL生成工具,创建路由DSL文本字符串,提供路由加载和卸载,以及路由转发和报文转换能力;
S4、实现能力接口及源API接口的请求响应耗时计算与日志输出,即实现能力接口及路由的目标源API接口的调用审计信息统计与日志输出能力。
在步骤S1中,提供一个可视化的源API接口注册组件:实现内外部源API接口注册,入参、出参、请求头、响应头的信息维护,并通过提供swagger文档导入的功能,减轻使用人员操作复杂度与工作量。
1)创建源API接口表、注册入参表、注册出参表、注册请求头表和注册响应头表,用于存储注册的源API接口数据。
源API接口表:平铺列表结构,字段包含接口编码、名称、描述、请求方式[post/get]、post请求体类型[raw/form-data])、接口系统、接口URL;
注册入参表:树型结构,字段包含参数节点ID、节点类型[val=值类型,arr=数组类型]、父节点ID、节点英文名、节点中文描述;
注册出参表:树型结构,字段同注册入参表,不再赘述;
注册请求头表:平铺列表结构,字段包含键英文名、键中文描述、键值类型;
注册响应头表:平铺列表结构,字段同注册请求头表,不再赘述。
2)实现对上述表的增删改查操作能力。
3)实现源API接口注册组件界面,提供源API接口分页查询,源API接口详细信息查看、编辑和删除等系统功能。
4)支持swagger文档的导入,通过解析标准的swagger文档,实现源API接口信息读取与快速注册配置。
上述步骤主要实现了针对源API接口的注册和维护功能。
提供一个可视化的能力接口配置组件:选择一个内部或外部的源API接口,勾选编辑需要的出入参数字段,维护配置请求头响应头信息。
实现本发明第二个目的的技术方案是:
1)参照源API接口的系列表设计对应的能力接口表,包含能力接口表、能力入参表、能力出参表、能力请求头表、能力响应头表,用来存储管理根据注册的源API接口发布的能力接口。
能力接口表:平铺列表结构,字段包含接口编码、名称、描述、请求方式[post/get]、post请求体类型[raw/form-data])、接口系统、接口URL、源API接口主键、路由ID、路由XML_DSL文本;
能力入参表:树型结构,字段包含参数节点ID、节点类型[val=值类型,arr=数组类型]、父节点ID、节点英文名、节点中文描述、源API入参或请求头jsonPath;
能力出参表:树型结构,继承源API出参表结构,增加源API出参或响应头jsonPath字段;
能力请求头表:平铺列表结构,继承源API请求头表结构,增加源API入参或请求头jsonPath字段;
能力响应头表:平铺列表结构,继承源API响应头表结构,增加源API出参或响应头jsonPath字段。
需要说明的是,多个能力接口,可以对应同一个源API接口。JsonPath字段配置约束:以“#.”开头,表示从Header中取值;以“$.”开头,表示从报文体Body中取值;否则认为是常量。
2)实现对上述表的增删改查操作能力。
3)实现通过选择源API接口来创建能力接口的配置界面,提供能力接口分页查询,能力接口详细信息查看、编辑、删除等系统功能,以及在界面上提供能力接口的发布和停用按钮。
需要说明的是,参数及头信息key均支持重命名、删除、新增,支持通过jsonPath从源API的参数及头信息中获取数据。
上述步骤主要实现了根据源API接口配置能力接口,及能力接口的维护管理功能。
本发明的第三个目的是实现能力接口的发布与停用功能,通过实现一个接口路由DSL生成工具,来统一创建路由DSL文本字符串,并提供路由加载或卸载的功能,以及路由转发及报文转换的能力。
实现本发明第三个目的的技术方案是:
1)创建接口路由DSL生成工具,根据能力接口配置组件配置的能力接口信息,生成符合Apache Camel标准的XML格式路由DSL字符串;
2)实现一个路由服务类,使用CamelContext类来动态加载XML格式路由DSL文本生成路由服务,或者停用移除路由,从而完成能力接口的发布与停用。
3)创建Http请求报文类型转换处理器,解决新发布的raw报文体类型的能力接口向一部分form-data报文体类型的源API接口的格式转换适配问题。
4)创建请求头和响应头与报文体格式转换处理器,根据能力接口配置的出入参数及头信息中的jsonPath,完成数据的获取与填充,实现格式转换。
5)由Camel组件根据路由DSL,完成路由的转发,各处理器的调用等操作。
上述步骤主要实现了路由DSL的生成,及路由的加载和卸载,以实现能力接口的发布与停用功能。
实现能力接口及路由的目标源API接口的调用审计信息统计与日志输出功能。实现的的技术方案是:
1)实现一个耗时计算处理器CalcElapsedTimeProcess,传入headerKey,从请求头中header中获取值(记录的时间),再用当前系统时间与之相减,获得时间差值毫秒数,即为耗时,并写回header中。
2)在XML格式路由DSL的from端点后,通过Camel的setHeader组件往header中以能力接口编码为key写入当前系统时间;在路由DSL最后加入耗时计算处理器CalcElapsedTimeProcess,用来计算能力接口响应耗时;再在最后追加Camel的log组件打印能力接口的编码、响应耗时、响应状态码(响应状态码可直接从Camel路由的请求头headers.CamelHttpResponseCode获取)等信息。Camel框架包括fromEndpoint和toEndpoing。fromEndpoint为暴露给外部调用的接口API地址,toEndpoing为实际服务的源API地址。
3)同样的,在路由DSL的to端点前,通过Camel的setHeader组件往header中以能力接口编码为key写入当前系统时间;在路由DSL的to端点后加入耗时计算处理器CalcElapsedTimeProcess,用来计算源API接口响应耗时;紧后再追加Camel的log组件打印to端点对应的源API接口的编码、响应耗时、响应状态码等信息。
上述步骤主要实现了能力接口及源API接口两者的请求响应耗时计算,以及日志的格式化打印输出。
通过源API接口注册组件,管理源API接口;通过能力接口配置组件,实现根据源API定制新能力,采用基于Camel的XML格式路由DSL,来达到路由的生成、发布、管理,以及接口请求响应耗时的计算与打印输出。从而实现一种简洁配置型rest接口管理与消息转换方法或装置。
本发明基于Apache Camel框架技术,实现接口的发布与路由能力;遵循Camel的XML DSL的格式规范,编写一个接口路由DSL生成工具;开发一个可视化的源API接口注册组件,用于源API接口的注册和参数等信息的维护;以及开发一个可视化的能力接口发布组件,通过对源API接口进行参数的裁剪或转换,变成多个贴合调用方业务场景需要的接口,并支持请求头的二次定义实现Token鉴权的封装能力,同时实现完成针对源API接口和基于源API接口发布的系统新接口的调用审计日志的输出。
(1) 本发明实现了一种可视化的针对源API接口进行新能力接口的定制与发布管理功能。
提供可视化的界面操作,管理源API接口及定制新能力接口,以及在线动态发布或停用能力接口,并提供源API的swagger文档导入能力。智能配置源API接口,大大减轻操作复杂度。通过根据业务定制新能力接口,更佳适配各种业务场景使用需求,提升接口的易读性与可维护性。以及解决源API接口不同的请求体类型[raw/form-data]问题,发布的新能力接口将以标准的raw请求体格式接收外部参数。
(2)本发明实现了一种请求/响应头与请求/响应报文体重定义及相互取值的动态配置方法。
根据请求/响应头与请求/响应报文体重定义,可实现如基于token的源API接口的鉴权的统一内置配置,降低接口使用复杂度;以及更加灵活的扩展业务需要的新参数。头与报文体的相互取值的支持,更增加了格式转换的灵活性。
(3)本发明实现了记录源API接口和新发布的能力接口的审计日志通用标准化输出功能。
在路由DSL中置入标准的审计日志的输出功能,实现了统一规范的标准化日志的输出,减少了额外的日志记录操作。
本发明的应用,将有助于统一管理外部API接口,集中处理如token鉴权等操作,扩展固化的请求头等工作;以及实现针对各具体业务需求,对外部提供的标准化通用API接口进行在线定制化的配置,以增强接口的适配性和可维护性,无需再进行二次代码开发,节约研发成本,提升接口建设效率。为需要进行简单rest接口管理、参数裁剪或消息转换,提供一种简洁、高效、易于集成的解决方案。
如图1所示,本发明实施例的一种简洁配置型rest接口管理与消息转换方法,可包括以下步骤:
(1)提供可视化的源API接口注册组件,实现内外部源API接口注册和维护,导入/录入出入参数及请求头响应头信息。
根据本发明的一个实施例,实现一个可视化的源API接口注册组件界面,提供源API接口分页查询,源API接口详细信息查看、编辑、删除等系统功能。为了简化操作,提升API接口注册便捷性,提供一个支持swagger文档的导入功能,通过解析标准的swagger文档,实现源API相关信息快速配置。
(2)实现可视化的能力接口配置组件,选择一个源API接口,勾选及重写出入参数,维护请求头响应头,创建新能力接口。
根据本发明的一个实施例,实现通过选择源API接口来创建能力接口的配置界面,提供能力接口的管理功能,以及接口详细信息包括出入参数和头信息的查看、编辑等系统功能,并在页面上提供能力接口的发布和停用操作按钮。
需要说明的是,参数及头信息key均支持重命名、删除、新增,支持通过jsonPath从源API的参数及头信息中获取数据。
(3)编写一个Http请求报文类型转换处理器,实现json格式的raw类型报文体往form-data类型转换,以适配请求体为form-data类型的源API接口。
根据本发明的一个实施例,所有发布的新能力接口请求报文体类型均默认为raw类型,在能力接口被调用时,需通过Http请求报文类型转换处理器,判别源API接口报文体类型是否为form-data,并进行相应转换处理,解决新发布的raw报文体类型的能力接口向一部分form-data报文体类型的源API接口的格式转换适配问题。
(4)编写一个请求/响应头与报文体格式转换处理器,利用jsonPath技术,实现能力接口重定义的参数及配置的头信息请求和响应内容格式转换。
根据本发明的一个实施例,在能力接口的参数及头信息配置中,均支持自定义的JsonPath格式的取数映射配置,以从源API接口获取对应信息,JsonPath配置遵从约束:以“#.”开头,表示从Header中取值;以“$.”开头,表示从报文体Body中取值;否则认为是常量。
需要说明的是,根据请求/响应头与请求/响应报文体重定义,可实现如基于token的源API接口的鉴权的统一内置配置,降低接口使用复杂度;以及更加灵活的扩展业务需要的新参数。并支持了头信息与报文信息的交叉获取,提升了报文结构变换的灵活性。
(5)编写一个耗时计算处理器,用于计算接口响应耗时。
根据本发明的一个实施例,实现了实现一个耗时计算处理器,入参为headerKey,先从请求头中header中获取值(记录的时间),再用当前系统时间与之相减,计算获得时间差值毫秒数,即为耗时,写回到header中。
需要说明的是,耗时计算处理器将作为接口路由DSL字符串的一部分内容,在接口发布并被实际请求时触发执行。
(6)实现接口路由DSL生成工具,根据能力接口配置信息生成XML格式的Camel路由DSL字符串。
根据本发明的一个实施例,接口路由DSL生成工具,用于根据能力接口配置组件配置的新能力接口及其相关参数,并整合上述各请求处理器,生成符合Apache Camel标准的XML格式路由DSL字符串。
(7)在Camel路由DSL中,实现能力接口和API接口请求计时埋点,以及在能力接口和API接口后分别装载耗时计算处理器,并在嵌入Camel的log组件实现格式化审计日志输出。
根据本发明的一个实施例,在XML格式路由DSL的from端点后,通过Camel的setHeader组件往header中以能力接口编码为key写入当前系统时间;在路由DSL最后加入耗时计算处理器CalcElapsedTimeProcess,用来计算能力接口响应耗时;再在最后追加Camel的log组件打印能力接口的编码、响应耗时、响应状态码等信息。
同样的,为了输出源API接口的调用日志,在路由DSL的to端点前,通过Camel的setHeader组件往header中以能力接口编码为key写入当前系统时间;在路由DSL的to端点后加入耗时计算处理器CalcElapsedTimeProcess,用来计算API接口响应耗时;紧后再追加Camel的log组件打印to端点对应的源API接口的编码、响应耗时、响应状态码等信息。
(8)集成Camel框架,封装能力接口的发布与停用功能,并在能力接口配置组件的接口列表界面提供“发布”与“停用”按钮。
根据本发明的一个实施例,实现一个路由服务类,使用CamelContext类来动态加载XML格式路由DSL文本生成路由服务,或者停用移除路由,从而完成能力接口的发布与停用。通过能力接口配置组件界面上的“发布”与“停用”按钮,来触发路由服务类的调用,并由Camel组件根据路由DSL,完成路由的转发,各处理器的调用,以及驱动路由DSL中的log组件打印接口响应耗时审计日志。
综上所述,根据本发明实施例的一种简洁配置型rest接口管理与消息转换方法,通过源API接口注册组件,管理源API接口;通过能力接口配置组件,实现根据源API定制新能力,基于Camel框架技术,采用XML格式的路由DSL,并自定义各种报文格式转换处理器,耗时计算处理器,来达到路由的生成、发布、管理,以及接口请求响应耗时的计算与打印输出的目的,从而实现一种简洁配置型rest接口管理与消息转换方法。
一种简洁配置型rest接口管理与消息转换方法,有助于统一管理外部API接口,集中处理如token鉴权等操作,扩展固化的请求头等工作;以及实现针对各具体业务需求,对外部提供的标准化通用API接口进行在线定制化的配置,以增强接口的适配性和可维护性,无需再进行二次代码开发,节约了研发成本,提升了接口建设效率。为需要进行简单rest接口管理、参数裁剪或消息转换,提供一种简洁、高效、易于集成的解决方案。
对应上述实施例,本发明还提出一种简洁配置型rest接口管理与消息转换装置。
如图2所示,本发明实施例的一种简洁配置型rest接口管理与消息转换装置,装置包括源API接口注册模块100、能力接口配置模块200、接口路由DSL生成模块300、能力接口发布/停用模块400和审计日志模块500,源API接口注册模块100提供内外部所有的restful协议的源API接口的注册管理;能力接口配置模块200提供使用源API接口重定义参数发布能力接口以及对能力接口的各项管理(增删等),并提供能力接口的发布和停用操作入口;接口路由DSL生成模块300提供根据能力接口配置信息,并整合各种请求处理器,生成Camel标准(Camel是开源服务框架,提供一套DSL规范标准)的XML格式接口路由DSL字符串;能力接口发布/停用模块400使用接口路由DSL生成模块300生成的路由DSL提供路由的查看和停用;审计日志模块500提供能力接口及源API接口请求响应耗时的计算,以及审计日志的打印输出。
需要说明的是,本发明一种简洁配置型rest接口管理与消息转换装置可参照上述一种简洁配置型rest接口管理与消息转换方法的实施例,在此不再赘述。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (6)
1.简洁配置型rest接口管理与消息转换方法,其特征在于:所述方法包括如下步骤:
S1、提供可视化的源API接口注册组件,实现源API接口注册和维护;
S2、提供可视化的能力接口配置组件,选择源API接口,勾选编辑需要的出入参数字段,维护配置请求头响应头信息,实现能力接口的维护管理;
S3、能力接口的发布与停用:通过接口路由DSL生成工具,创建路由DSL文本字符串,提供路由加载和卸载,以及路由转发和报文转换能力;
S4、实现能力接口及源API接口的请求响应耗时计算与日志输出;
在步骤S3中,具体实现步骤为:
S3-1、创建接口路由DSL生成工具,根据能力接口配置组件配置的能力接口信息,生成路由DSL字符串;
S3-2、创建路由服务类,加载路由DSL文本生成路由服务,或者停用路由服务;
S3-3、创建Http请求报文类型转换处理器,完成raw报文体类型的能力接口向form-data类型转换,以适配请求体为form-data类型的源API接口;
S3-4、创建请求头和响应头与报文体格式转换处理器,根据能力接口配置的出入参数及头信息中的jsonPath,完成数据的获取与填充,实现格式转换;
S3-5、Camel组件根据路由DSL信息,完成路由的转发。
2.根据权利要求1所述的简洁配置型rest接口管理与消息转换方法,其特征在于:在步骤S1中,具体实现步骤为:
S1-1、创建源API接口表、注册入参表、注册出参表、注册请求头表和注册响应头表,用于存储注册的源API接口数据;
S1-2、实现源API接口注册组件界面,提供源API接口分页查询,源API接口详细信息查看、编辑和删除;
S1-3、支持swagger文档的导入,通过解析标准的swagger文档,实现源API接口信息读取与快速注册配置。
3.根据权利要求2所述的简洁配置型rest接口管理与消息转换方法,其特征在于:在步骤S2中,具体实现步骤为:
S2-1、参照步骤S1-1创建对应的能力接口表、能力入参表、能力出参表、能力请求头表和能力响应头表,用于存储根据注册的源API接口发布的能力接口;
S2-2、通过选择源API接口来创建能力接口配置界面,提供能力接口分页查询,能力接口详细信息查看、编辑和删除,并在页面上提供能力接口的发布和停用按钮。
4.根据权利要求1所述的简洁配置型rest接口管理与消息转换方法,其特征在于:在步骤S4中,具体实现步骤为:
S4-1、编写耗时计算处理器,用于计算接口响应耗时;
S4-2、实现能力接口和API接口请求计时埋点,以及在能力接口和API接口后分别装载耗时计算处理器,并在嵌入Camel的log组件实现格式化审计日志输出。
5.根据权利要求4所述的简洁配置型rest接口管理与消息转换方法,其特征在于:在步骤S4-2中,具体实现步骤为:
S4-2-1:向耗时计算处理器CalcElapsedTimeProcess函数库传入headerKey,从请求头中header中获取记录的时间,再用当前系统时间与记录的时间相减,获得时间差值毫秒数,即为耗时,并写回header中;
S4-2-2:在XML格式路由DSL的from端点后,通过Camel的setHeader组件往header中以能力接口编码为key写入当前系统时间;
S4-2-3:在路由DSL最后加入耗时计算处理器,用来计算能力接口响应耗时;追加Camel的log组件打印能力接口的编码、响应耗时、响应状态码;
S4-2-4:在路由DSL的to端点前,通过Camel的setHeader组件往header中以能力接口编码为key写入当前系统时间;在路由DSL的to端点后加入耗时计算处理器,用来计算源API接口响应耗时;再追加Camel的log组件打印to端点对应的源API接口的编码、响应耗时、响应状态码。
6.采用权利要求1所述的简洁配置型rest接口管理与消息转换方法的转换装置,其特征在于:所述装置包括源API接口注册模块(100)、能力接口配置模块(200)、接口路由DSL生成模块(300)、能力接口发布/停用模块(400)和审计日志模块(500),源API接口注册模块(100)提供源API接口的注册管理;能力接口配置模块(200)提供使用源API接口重定义参数发布能力接口以及对能力接口的各项管理,并提供能力接口的发布和停用操作入口;接口路由DSL生成模块(300)提供根据能力接口配置信息,并整合各种请求处理器,生成Camel标准的XML格式接口路由DSL字符串;能力接口发布/停用模块(400)使用接口路由DSL生成模块(300)生成的路由DSL提供路由的查看和停用;审计日志模块(500)提供能力接口及源API接口请求响应耗时的计算,以及审计日志的打印输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310912452.6A CN116627486B (zh) | 2023-07-25 | 2023-07-25 | 简洁配置型rest接口管理与消息转换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310912452.6A CN116627486B (zh) | 2023-07-25 | 2023-07-25 | 简洁配置型rest接口管理与消息转换方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116627486A CN116627486A (zh) | 2023-08-22 |
CN116627486B true CN116627486B (zh) | 2023-10-20 |
Family
ID=87603094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310912452.6A Active CN116627486B (zh) | 2023-07-25 | 2023-07-25 | 简洁配置型rest接口管理与消息转换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627486B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105872051A (zh) * | 2016-03-31 | 2016-08-17 | 浪潮通信信息系统有限公司 | 一种政企云平台中的能力开放管控服务平台 |
WO2018201978A1 (zh) * | 2017-05-04 | 2018-11-08 | 平安科技(深圳)有限公司 | 接口调用数据处理方法、装置、计算机设备和存储介质 |
CN115185710A (zh) * | 2022-07-21 | 2022-10-14 | 武汉众邦银行股份有限公司 | 一种交易接口耗时统计与预警的方法 |
CN115309566A (zh) * | 2022-08-09 | 2022-11-08 | 医利捷(上海)信息科技有限公司 | 一种服务接口的动态管理方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8898293B2 (en) * | 2009-01-28 | 2014-11-25 | Headwater Partners I Llc | Service offer set publishing to device agent with on-device service selection |
WO2011119366A1 (en) * | 2010-03-23 | 2011-09-29 | Sybase 365, Inc. | System and method for network message redirection and application matching |
US8792419B2 (en) * | 2010-04-08 | 2014-07-29 | At&T Intellectual Property I, L.P. | Presence-based communication routing service and regulation of same |
US20230168872A1 (en) * | 2021-11-29 | 2023-06-01 | Salesforce.Com, Inc. | Generating user interfaces for administration of services executing in cloud platforms |
-
2023
- 2023-07-25 CN CN202310912452.6A patent/CN116627486B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105872051A (zh) * | 2016-03-31 | 2016-08-17 | 浪潮通信信息系统有限公司 | 一种政企云平台中的能力开放管控服务平台 |
WO2018201978A1 (zh) * | 2017-05-04 | 2018-11-08 | 平安科技(深圳)有限公司 | 接口调用数据处理方法、装置、计算机设备和存储介质 |
CN115185710A (zh) * | 2022-07-21 | 2022-10-14 | 武汉众邦银行股份有限公司 | 一种交易接口耗时统计与预警的方法 |
CN115309566A (zh) * | 2022-08-09 | 2022-11-08 | 医利捷(上海)信息科技有限公司 | 一种服务接口的动态管理方法及系统 |
Non-Patent Citations (3)
Title |
---|
A domain specific language and methodology for control systems GUI specification, verification and prototyping;Matteo Risoldi 等;《IEEE Symposium on Visual Languages and Human-Centric Computing》;第179-182页 * |
基于消息通信的SOA系统的设计与实现;张锦煌;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-3058 * |
基于组件化的后台管理页面可视化构建系统设计与实现;章晨曦;《中国优秀硕士学位论文全文数据库 信息科技辑》;I139-376 * |
Also Published As
Publication number | Publication date |
---|---|
CN116627486A (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372492B2 (en) | Job-processing systems and methods with inferred dependencies between jobs | |
CN113034095A (zh) | 结合rpa和ai的人机互动方法、装置、存储介质及电子设备 | |
Bockermann et al. | The streams framework | |
US7404185B2 (en) | Method and apparatus of adaptive integration activity management for business application integration | |
CN103645951A (zh) | 一种跨平台的移动数据管理系统及其方法 | |
JP2002024020A (ja) | 画面制御プログラム、動的表示情報取得プログラム、画面表示トランザクションプログラム、画面コンポーネントインタフェースプログラム、画面プログラム作成方法 | |
US8966442B2 (en) | Custom code innovation management | |
CN109523423B (zh) | 一种应用系统生成方法、装置、设备及存储介质 | |
WO2024012221A1 (zh) | 基于版式数据流文件底板创建虚拟服务共享池的方法 | |
CN114238948A (zh) | 一种应用程序检测方法、装置、电子设备及存储介质 | |
CN113094674A (zh) | 页面展示方法、装置、电子设备及存储介质 | |
CN113268500A (zh) | 业务处理方法、装置及电子设备 | |
US20170193409A1 (en) | Business resource modeling | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN116627486B (zh) | 简洁配置型rest接口管理与消息转换方法和装置 | |
CN116450723A (zh) | 数据提取方法、装置、计算机设备及存储介质 | |
CN116431200A (zh) | 应用数据配置信息的配置方法、装置、设备及存储介质 | |
CN115185841A (zh) | 系统重构测试方法、装置、设备及存储介质 | |
US8869122B2 (en) | Extensible executable modeling | |
CN113885844A (zh) | 一种业务服务编排方法及相关装置 | |
CN114239511A (zh) | 填充数据的方法和填充数据的装置 | |
CN112085289A (zh) | 程序维护任务处理方法、装置、设备及存储介质 | |
CN108304219A (zh) | 二次开发平台及方法 | |
CN111368522A (zh) | 信息生成方法及装置、计算机设备及计算机可读存储介质 | |
CN115510121A (zh) | 一种名单数据管理方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |