CN117097783A - 基于开放平台接口服务执行方法、系统、设备及存储介质 - Google Patents
基于开放平台接口服务执行方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN117097783A CN117097783A CN202310954614.2A CN202310954614A CN117097783A CN 117097783 A CN117097783 A CN 117097783A CN 202310954614 A CN202310954614 A CN 202310954614A CN 117097783 A CN117097783 A CN 117097783A
- Authority
- CN
- China
- Prior art keywords
- service
- interface
- template
- gateway
- message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims abstract description 67
- 230000006870 function Effects 0.000 claims abstract description 20
- 238000011161 development Methods 0.000 claims abstract description 19
- 238000012544 monitoring process Methods 0.000 claims abstract description 10
- 238000012423 maintenance Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 15
- 238000012856 packing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000007792 addition Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0843—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种基于开放平台接口服务执行方法、系统、设备及存储介质,所述接口服务方案分别依次包括:接口模块开发、接口注册发布、监听注册发布事件、处理注册发布事件、发送请求、请求报文处理、业务处理、返回处理结果、响应报文处理。本发明所提供的服务方案版本发布无需暂停网关,部署接口,直接注册下发,不影响实事交易,不依赖数据库,在无数据库情况下可以保证绝大多数甚至全部功能正常运转。
Description
技术领域
本发明涉及接口开发技术领域,更具体地,涉及基于开放平台接口服务执行方法、系统、设备及存储介质。
背景技术
接口硬编码开发,部署到网关需要重启,并且后续增删改都需要修改硬编码并重启网关编译接口,才能够执行;开发难度大,效率低,尤其是对于开放平台这种程序的出入口平台,热点接口非常多,交易量很大,这种环境下使用传统接口开发会极大的压缩网关吞吐量,版本控制也比较难,较为死板。
发明内容
本发明针对现有技术中存在的技术问题,提供一种基于开放平台接口服务执行方法、系统、设备及存储介质,其版本发布无需暂停网关,部署接口,直接注册下发,不影响实事交易,不依赖数据库,在无数据库情况下可以保证绝大多数甚至全部功能正常运转。
根据本发明的第一方面,提供了一种基于开放平台接口服务执行方法,所述方法包括:
S1:接口模板开发:接口模板以xml形式存储,定义字段在对应xml模板中的字段层级位置中的路径;
S2:接口注册发布:开发者将开发完成接口模板通过运维平台注册发布到注册中心;
S3:监听注册发布事件:网关服务监听运维平台向注册中心注册发布的接口模板信息,获取到具体增删改的接口模板信息;
S4:网关处理注册发布事件内容:网关服务以流的方式将接口模板信息拉去到网关服务平台,并将接口模板生成一个实际可提供服务的文件包;
S5:业务调用系统请求发送:当调用端发送请求到网关时,网关通过调用端的请求信息路由具体接口;
S6:请求报文处理:在路由到具体接口后,网关通过所述接口的文件包提供拆组包服务,将请求Json报文拆解并组成业务系统能够接受解析的xml报文;
S7:业务处理:网关将处理完的请求xml报文送往后端业务系统处理;
S8:返回结果处理:后端处理完毕后网关获取到后端响应xml报文,将后端xml报文进行拆解,再组成渠道接受并解析的Json报文;
S9:响应报文处理:将处理完成的Json报文响应给调用端。
在上述技术方案的基础上,本发明还可以作出如下改进。
可选的,所述开发者将开发完成接口模板通过运维平台注册发布到注册中心包括以下步骤:
步骤2.1:上传接口模板到运维管理平台;
步骤2.2:运维管理平台获取接口模板信息,将接口名称以及模板注册到注册中心集群;
步骤2.3:注册中心拿到接口信息直接覆写到集群节点中,若注册过程中因网络通讯原因或者注册中心集群原因无法注册,则执行步骤2.4;
步骤2.4:注册失败提示信息;
步骤2.5:注册成功并提示开发者。
可选的,所述网关服务监听运维平台向注册中心注册发布的接口模板信息,获取到具体增删改的接口模板信息包括以下步骤:
步骤3.1:开放平台网关实事监听注册中心集群;
步骤3.2:注册中心集群节点目录接口发生增量或者覆盖更新;
步骤3.3:监听将节点变更信息内容反馈给网关。
可选地,所述网关服务以流的方式将接口模板信息拉去到网关服务平台,通过API将接口模板生成一个实际可提供服务的.class文件包包括以下步骤:
步骤4.1:网关获取到接口目录节点更新内容;
步骤4.2:将节点接口信息序列化到本地目录;
步骤4.3:拿到节点信息接口拆组包文件后进行判断是否为拆组包文件并且区分为拆包或组包文件;
步骤4.4:网关调用拆包解析工具类对拆包模板进行解析,获取模板字段排列方式和属性值,生成消费端拆包和服务提供端拆包的.java文件;
步骤4.5:网关调用拆包解析工具类对组包模板进行解析,获取组包模板字段排列方式和属性值,生成服务提供端组包和消费端拆包的.java文件;
步骤4.6:拆组包的java文件生成之后网关直接编译成.class文件保存到本地并且加载到网关内存区中;
步骤4.7:拆组包文件模板转化过程结束。
可选地,所述当调用端发送请求到网关时,网关通过调用端的请求信息路由具体接口包括以下步骤:
步骤5.1:消费方发起请求到开放平台;
步骤5.2:解析路径定义服务位置中的接口是否存在;
步骤5.3:若接口存在,即进行服务识别等基础服务,若接口不存在,返回非法请求”;
步骤5.4:开始解析请求json报文;
步骤5.5:业务调用系统请求发送处理结束。
可选地,所述在路由到具体接口后,网关通过所述接口的.class文件包提供拆组包服务,将请求Json报文拆解并组成业务系统能够接受解析的xml报文包括以下步骤:
步骤6.1:处理Json报文和消费端拆包模板的Java服务类以原始的Json报文和消费端拆包模板为入参调用内置函数parser()方法;
步骤6.2:parser()判断报文格式和类型是否为json,若成功,则进行步骤5.3,若失败直接返回异常给调用方;
步骤6.3:对原始json进行遍历,获取报文中所有key字符串;
步骤6.4:对key字符串进行重新赋值,是S=S+”/”+key;
步骤6.5:获取报文中key字符串对应的V值;
步骤6.6:判断V值是否为符串或数字类型,如是则进行步骤5.7;如否则对V值进行步骤6.3-6.5重新获取所有的报文V值;
步骤6.7:对拆包模板进行遍历,获取元素标签,通过t为索引定位元素标签中对应的子节点元素,获取节点元素的类型值;
步骤6.8:如未通过原始json字段的key字符串搜索到拆包模板中标签元素,则对该key字符串及下面的V值不处理;
步骤6.9:校验通过key字符串获取到的元素标签的属性是与v值的类型相同,如是则将该元素对应的S获取到并以S为key和对应的原生json的V值存入键值对形式存储k和v对象中。
可选地,所述后端处理完毕后网关获取到后端响应xml报文,通过接口jar将后端xml报文进行拆解,再组成渠道接受并解析的Json报文包括以下步骤:
步骤8.1:业务端处理完毕后响应给开放平台xml报文;
步骤8.2:开放平台调用处理xml报文和服务提供端拆包模板的Java服务类中的内置函数parser(a,b),将xml报文和服务提供端组包模板文件作为入参传入parser()函数中;
步骤8.3:parser()函数对业务端返回的报文进行初始判断,对服务提供端拆包模板的进行遍历解析,获取服务提供端拆包模板中的业务子元素节点t;
步骤8.4:获取节点t的属性字段并判断是否为子元素节点,如是则进行下一步,如不是则继续对该元素节点进行遍历;
步骤8.5:对子元素节点进行重新赋值,赋值规则为S=S+/+t;
步骤8.6:以xpath的形式从xml报文中获取对应的节点value简称V;
步骤8.7:将S和V以键值对的形式存入sdo对象中并放入上下文;
步骤8.8:处理sdo对象和消费端租包模板的Java服务类中的packer()函数对消费端组包模板进行遍历,取到节点元素;
步骤8.9:将消费端组包文件中的所有节点元素N拿到;
步骤8.10:获取节点元素中的属性字段的T;
步骤8.11:将元素节点的名称重新赋值为S,S默认值”sdoroot”,重新命名规则为S=S+”/”+N,其中,N为元素节点名称;
步骤8.12:判断元素类型T是否为字符串或数字类型,如是则进行步骤8.13,如否则则代表该节点不为业务字段节点,是一个嵌套节点结构体,则将不为字符串或数字的节点信息进行遍历重新执行步骤8.10-8.15;
步骤8.13:创建一个Json对象,对节点元素N进行遍历,重复步骤8.9-8.12重新拿到业务元素节点的S;
步骤8.14:通过S取到对应xml模板中的字段层级位置中对象中的所有值并赋值给V;
步骤8.15:创建一个Json对象,将获取到的模板节点字段N和V以键值对的形式放入Json对象中序列化后返回给调用方。
根据本发明的第三方面,提供了一种基于开放平台接口服务系统,包括:
开发平台模块,用于接口模板开发,接口模板以xml形式存储,定义字段在对应xml模板中的字段层级位置中的路径;和接口注册发布,开发者将开发完成接口模板通过运维平台注册发布到注册中心;
注册中心模块,用于监听注册发布事件,网关服务监听运维平台向注册中心注册发布的接口模板信息,获取到具体增删改的接口模板信息;
网关系统模块,用于处理注册发布事件内容,网关服务以流的方式将接口模板信息拉去到网关服务平台,通过API将接口模板生成一个实际可提供服务的jar;和用于请求报文处理,在路由到具体接口后,网关通过该接口的jar提供拆组包服务,将请求Json报文拆解并组成业务系统可以接受解析的xml报文;
业务处理系统模块,用于业务处理,网关将处理完的请求xml报文送往后端业务系统处理;和用于返回结果处理,后端处理完毕后网关获取到后端响应xml报文,通过接口jar将后端xml报文进行拆解,再组成渠道可以接受并解析的Json报文;
业务调用系统模块,用于业务调用系统请求发送,当调用端发送请求到网关时,网关通过调用端的请求信息路由具体接口;和响应报文处理,将处理完成的Json报文响应给调用端。
根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述所述的一种基于开放平台接口服务执行方法的步骤。
根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机管理类程序被处理器执行时实现上述所述的一种基于开放平台接口服务执行方法的步骤。
本发明的技术效果和优点:
本发明所述的开放平台通过适配流程和基础服务的设计,实现协议适配,服务识别,报文适配,服务调用,流量控制,权限校验等核心功能,而且原则上不依赖数据库,在无数据库情况下可以保证绝大多数甚至全部功能正常运转。
附图说明
图1为本发明实施例提供的基于开放平台接口服务执行方法流程图;
图2为本发明实施例提供的接口模板以service_接口名称.xml的格式命名示意图;
图3为本发明实施例提供的消费端拆包命名规则为Parser_cons_接口id_from_JSON.xml,xml文件格式存储示例图;
图4为本发明实施例提供的服务提供端组包命名规则为Packer_prvd_接口id_to_CD.xml,xml文件格式存储图;
图5为本发明实施例提供的服务提供端拆包命名规则为Parser_prvd_接口id_from_CD.xml,xml文件格式存储图;
图6为本发明实施例提供的消费端组包命名规则为Packer_cons_PurMarProdBreV1_to_JSON.xml,xml文件格式存储图;
图7为本发明实施例提供的拆组包实例化为可提供服务的jar文件示意图;
图8为本发明实施例提供的消费端请求报文处理拆包过程示意图;
图9为本发明实施例提供的服务提供端请求报文处理组包过程示意图;
图10为本发明实施例提供的服务提供端响应报文处理拆包过程示意图;
图11为本发明实施例提供的消费端响应报文处理拆包过程示意图;机可读存储介质的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
可以理解的是,基于背景技术中的缺陷,具体如图1所示,本发明实施例提出了一种基于开放平台接口服务执行方法,包括以下步骤:
S1.接口模板开发;所述接口模板以xml形式存储,定义字段在sdo中的路径;
需要进行说明的是,xml为报文载体的一种格式,sdo为一个集合,对应xml模板中的字段层级位置;所述接口模板在以xml形式存储,定义了字段在sdo中的路径,以service_接口名称.xml的格式命名,主要用以接口声明。具体如图2所示,图中,
元素标签<service/>用于申明改文件为接口主体;
元素标签<request/>定义接口主体中的请求体,<request/>标签下的元素标签为请求报文业务字段;
元素标签<response/>定义接口主体中的响应体,<response/>标签下的元素标签为响应报文业务字段。
示例性地,消费端拆包命名规则为Parser_cons_接口id_from_JSON.xml,xml文件格式存储。
消费端拆包示例具体如图3所示。图中,元素标签<Json/>用于申明拆解的报文类型为json报文;
<Json/>表标签下面的元素内容为报文业务字段,与接口主体中的<request/>标签元素内容一致;
<json/>标签中的package_type的属性值参与拆包过程中sdo键的生成,可自定义。
服务提供端组包命名规则为Packer_prvd_接口id_to_CD.xml,xml文件格式存储,具体如图4所示,图中,<service/>标签代表这是服务提供端拆组包结构体;
<sys-header/>标签满足行内报文标准(可以自由重构,这里只是示例);
<body/>标签结构下的元素是业务字段;
<data/>表示字段,没有直接使用C拆包的字段,这里重新用data标签定义字段名称,方便同时满足行内外报文要求;
服务提供端拆包命名规则为Parser_prvd_接口id_from_CD.xml,xml文件格式存储,如图5所示,图中,<service/>标签表示这是xml报文结构体;
<service/>标签中的package_type的属性值参与拆包过程中sdo键的生成,可自定义;
<sys-header/>标签满足行内报文标准(可以自由重构,这里只是示例),
<body/>标签结构下的元素是业务字段。
消费端组包命名规则为Packer_cons_PurMarProdBreV1_to_JSON.xml,xml文件格式存储,如图6所示,图中,<json/>标签代表处理报文格式为json报文;
<json/>标签下的元素标签代表返回业务报文,可自由映射服务提供端拆包后的报文;
<json/>标签下字元素的的expression属性表示P拆包后元素标签为层级的key,写上${/sdoroot/body/xxx}可以直接get到服务提供端的元素下返回的value值。
S2.接口注册发布,开发者将开发完成接口模板通过运维平台注册发布到注册中心(zookeeper);
在本实施例中,zookeeper为一种中间件,提供了接口让第三方注册发布一些业务信息;所述开发者将开发完成接口模板通过网关平台注册发布到注册中心其具体包括:
步骤2.1申明接口,上传接口模板到运维管理平台;
步骤2.2运维管理平台获取接口模板信息,将接口名称以及模板注册到zookeeper(注册中心)集群;
步骤2.3zookeeper拿到接口信息直接覆写到集群节点中,若注册过程中因网络通讯原因或者zookeeper(注册中心)集群原因无法注册,则执行步骤2.4;
步骤2.4注册失败提示信息;
步骤2.5注册成功并提示开发者。
S3.监听注册发布事件;网关服务监听运维平台向注册中心注册发布的接口模板信息,获取到具体增删改的接口模板信息;其具体包括以下子步骤:
步骤3.1开放平台网关实事监听zookeeper(注册中心)集群;
步骤3.2zookeeper(注册中心)集群节点目录接口发生增量或者覆盖更新
步骤3.3监听将节点变更信息内容反馈给网关。
S4.网关处理注册发布事件内容;网关服务以流的方式将接口模板信息拉去到网关服务平台,通过API将接口模板生成一个实际可提供服务的jar;
具体如图7所示,网关处理注册发布事件内容包括以下子步骤:
步骤4.1网关获取到接口目录节点更新内容;
步骤4.2将节点接口信息序列化到本地目录;
步骤4.3拿到节点信息接口拆组包文件后进行判断是否为拆组包文件并且区分为拆包或组包文件;
步骤4.4网关调用拆包解析工具类对拆包模板进行解析,获取模板字段排列方式和属性值,生成消费端拆包和服务提供端拆包的.java文件;
步骤4.5网关调用拆包解析工具类对组包模板进行解析,获取组包模板字段排列方式和属性值,生成服务提供端组包和消费端拆包的.java文件;
步骤4.6拆组包的java文件生成之后网关直接编译成.class文件保存到本地并且加载到jvm中;
步骤4.7拆组包文件模板转化过程结束。
需要进行说明的是,.java文件为.class文件包,可通过jdk运行执行服务。
S5.业务调用系统请求发送;调用端发送请求到网关,网关通过调用端的请求信息路由具体接口;
所述业务调用系统请求发送还具体包括:
步骤5.1消费方发起请求到开放平台;
步骤5.2解析url中的接口是否存在;
步骤5.3接口存在,即进行服务识别等基础服务,接口不存在,返回”非法请求”;
步骤5.4开始解析请求json报文;
步骤5.5业务调用系统请求发送处理结束。
在本实施例中,Json为报文载体的一种格式,url为一种资源定位符,表示为路径定义服务位置
S6.请求报文处理;路由到具体接口后,网关通过该接口的jar提供拆组包服务,将请求Json报文拆解并组成业务系统可以接受解析的xml报文;
在本实施例中,Json2sdoParserGenerator类,消费端拆包解析器,它的内置函数paser()将原始的json报文通过消费端拆包的模板作为入参,返回hashmap结构的sdo对象,存入上下文。
具体如图8所示,所述网关处理注册发布事件内容具体包括以下子步骤:
步骤6.1Json2sdoParserGenerator(处理Json报文和C端拆包模板的Java服务类)以原始的Json报文和消费端拆包模板为入参调用内置函数parser()方法;
步骤6.2parser()会做简单判断报文格式和类型是否为json,若成功,则进行步骤5.3若失败直接返回异常给调用方;
步骤6.3对原始json进行遍历,获取报文中所有key;
步骤6.4对key进行重新负责,是S=S+”/”+key如下所示:
原始key为aaaa=”aaaa”生成的新的kv为/json/aaaa=”aaaa”并以json中原始的key为key,S为value放入map中;
步骤6.5获取报文中key对应的V值;
步骤6.6判断V是否为字符串或数字类型,如是则进行步骤5.7如否则对V进行6.3-6.6重新获取所有的报文V值;
步骤6.7对拆包模板进行遍历,获取元素标签,通过t为索引定位元素标签中对应的子节点元素,获取节点元素的类型type值;
步骤6.8如未通过原始json字段的key搜索到拆包模板中标签元素,则对该key及下面的value值不处理;
步骤6.9校验通过key获取到的元素标签的type属性是与v值的类型相同,如是则将该元素对应的S获取到并以S为key和对应的j原神json的V值存入sdo对象中。
需要进行说明的是,Sdo2CDPackerGenerator类,服务提供端组包解析器,它的内置方法packer()将服务提供端组包模板和消费端拆包sdo对象作为入参,通过代码逻辑执行返回xml报文,key为键唯一不重复的字符串,V值,可以重复,一个键对应一个值。
具体如图9所示,在另一种可能的实施方式中,在步骤6.5之后,还包括:
步骤6.6Sdo2CDPackerGenerator类获取到服务提供端组包的报文模板和上下文sdo对象;
步骤6.7调用packer()函数读取模板中的元素标签,获取元素标签中的字段和取值表达式;
步骤6.8遍历sdo对象,取到所有的键值对;
步骤6.9获取到元素中花括号中的表达式,通过xpath的形式给表达式中与sdo对象key一致的表达式赋值,括号表达式为${/json/xxx},这种表达式的意思是以花括号中的值为key去遍历取到sdo对象中key一致的vlaue并替换到xml报文中的值。
需要进行说明的是,sdo表示为一个集合,键值对形式存储k和v。
S7.业务系统处理;网关将处理完的请求xml报文送往后端业务系统处理;
S8.返回结果处理;后端处理完毕后网关获取到后端响应xml报文,通过接口jar将后端xml报文进行拆解,再组成渠道可以接受并解析的Json报文;
具体如图10所示,CD2sdoParserGenerator类,服务提供端拆包解析器,它的内置函数paser()将原始xml报文和拆包模板作为入参,进行逻辑处理后返回一个hashmap结构的sdo对象;所述返回结果处理包括以下子步骤:
步骤8.1业务端处理完毕后响应给开放平台xml报文;
步骤8.2开放平台调用CD2sdoParserGenerator(处理xml报文和服务提供端拆包模板的Java服务类)类中的内置函数parser(a,b),将xml报文和服务提供端组包模板文件作为入参传入parser()函数中;
步骤8.3对业务端返回的报文进行初始判断,对服务提供端拆包模板的进行遍历解析,获取服务提供端拆包模板中的业务子元素节点t;
步骤8.4获取节点t的属性字段并判断是否为子元素节点,如是则进行下一步,如不是则继续对该元素节点进行遍历;
步骤8.5对子元素节点进行重新赋值,赋值规则为S=S+/+t;
步骤8.6以xpath的形式从xml报文中获取对应的节点value简称V;
步骤8.7将S和V以键值对的形式存入sdo对象中并放入上下文。
具体如图11所示,Sdo2JsonPackerGenerator类,消费端组包解析器,它的内置方法packer()将消费端组包模板和服务提供端拆包sdo对象作为入参,进行逻辑处理,并将Json对象作为出参返回,还包括:
步骤8.8Sdo2JsonPackerGenerator中的packer()函数对消费端组包模板进行遍历,取到节点元素;
步骤8.9将消费端组包文件中的所有节点元素N拿到;
步骤8.10获取节点元素中的type属性字段的T;
步骤8.11将元素节点的名称重新赋值为S,S默认值”sdoroot”,重新命名规则为S=S+”/”+N(元素节点名称);
步骤8.12判断元素类型T是否为字符串或数字类型,如是则进行步骤8.13,如否则则代表该节点不为业务字段节点,是一个嵌套节点结构体,则将不为字符串或数字的节点信息进行遍历重新执行步骤8.10-8.15;
步骤8.13创建一个Json对象,对节点元素N进行遍历,重复步骤8.9-8.12重新拿到业务元素节点的S;
步骤8.14通过S取到sdo对象中的所有value值并赋值给V;
步骤8.15创建一个Json对象,将获取到的模板节点字段N和V以键值对的形式放入JSON对象中序列化后返回给调用方。
S9.请求响应;将处理完成的Json报文响应给调用端。包括:将消费端组包解析器解析完成之后的json报文响应给调用端。其中,调用端为消费端消费者。
需要进行说明的是,本发明实施例所述的基于开放平台接口服务执行方法、系统、电子设备及存储介质,开放平台API开发的方式、特点、性能,易上手,成本低,接口注册下发管理模式,不依赖数据库;开放平台API网关接口执行的过程和组件运用,高安全性,高灵活性,低耦合性。
与现有技术相比,本发明实施例具有以下优点,1.接口模板化开发,统一平台管理,可视化程度高,便于接口分类管理;2.模板化开发,无需编译,减轻系统负担,接口增删改更加便捷灵活;3.版本发布无需暂停网关,部署接口,直接注册下发,不影响实事交易。
根据本发明的第二方面,本发明实施例提供的一种基于开放平台接口服务系统,包括:
开发平台模块,用于接口模板开发,所述接口模板以xml形式存储,定义字段在集合容器中的路径;和接口注册发布,开发者将开发完成接口模板通过运维平台注册发布到注册中心;
注册中心模块,用于监听注册发布事件,网关服务监听运维平台向zookeeper注册发布的接口模板信息,获取到具体增删改的接口模板信息;
网关系统模块,用于处理注册发布事件内容,网关服务以流的方式将接口模板信息拉去到网关服务平台,通过API将接口模板生成一个实际可提供服务的jar;和用于请求报文处理,在路由到具体接口后,网关通过该接口的jar提供拆组包服务,将请求Json报文拆解并组成业务系统可以接受解析的xml报文;
业务处理系统模块,用于业务处理,网关将处理完的请求xml报文送往后端业务系统处理;和用于返回结果处理,后端处理完毕后网关获取到后端响应xml报文,通过接口jar将后端xml报文进行拆解,再组成渠道可以接受并解析的Json报文;
业务调用系统模块,用于业务调用系统请求发送,当调用端发送请求到网关时,网关通过调用端的请求信息路由具体接口;和响应报文处理,将处理完成的Json报文响应给调用端。
可以理解的是,本发明实施例提供的一种基于开放平台接口服务系统系统与前述各实施例提供的基于开放平台接口服务执行方法相对应,基于开放平台接口服务系统的相关技术特征可参考基于开放平台接口服务系统方法的相关技术特征,在此不再赘述。
根据本发明的第三方面,本发明实施例提了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于开放平台接口服务执行方法所述的步骤。
根据本发明的第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于开放平台接口服务所述的步骤。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于开放平台接口服务执行方法,其特征在于,包括以下步骤:
S1:接口模板开发:接口模板以xml形式存储,定义字段在对应xml模板中的字段层级位置中的路径;
S2:接口注册发布:开发者将开发完成接口模板通过运维平台注册发布到注册中心;
S3:监听注册发布事件:网关服务监听运维平台向注册中心注册发布的接口模板信息,获取到具体增删改的接口模板信息;
S4:网关处理注册发布事件内容:网关服务以流的方式将接口模板信息拉去到网关服务平台,并将接口模板生成一个实际可提供服务的文件包;
S5:业务调用系统请求发送:当调用端发送请求到网关时,网关通过调用端的请求信息路由具体接口;
S6:请求报文处理:在路由到具体接口后,网关通过所述接口的文件包提供拆组包服务,将请求Json报文拆解并组成业务系统能够接受解析的xml报文;
S7:业务处理:网关将处理完的请求xml报文送往后端业务系统处理;
S8:返回结果处理:后端处理完毕后网关获取到后端响应xml报文,将后端xml报文进行拆解,再组成渠道接受并解析的Json报文;
S9:响应报文处理:将处理完成的Json报文响应给调用端。
2.根据权利要求1所述的基于开放平台接口服务执行方法,其特征在于,所述开发者将开发完成接口模板通过运维平台注册发布到注册中心包括以下步骤:
步骤2.1:上传接口模板到运维管理平台;
步骤2.2:运维管理平台获取接口模板信息,将接口名称以及模板注册到注册中心集群;
步骤2.3:注册中心拿到接口信息直接覆写到集群节点中,若注册过程中因网络通讯原因或者注册中心集群原因无法注册,则执行步骤2.4;
步骤2.4:注册失败提示信息;
步骤2.5:注册成功并提示开发者。
3.根据权利要求1所述的基于开放平台接口服务执行方法,其特征在于,所述网关服务监听运维平台向注册中心注册发布的接口模板信息,获取到具体增删改的接口模板信息包括以下步骤:
步骤3.1:开放平台网关实事监听注册中心集群;
步骤3.2:注册中心集群节点目录接口发生增量或者覆盖更新;
步骤3.3:监听将节点变更信息内容反馈给网关。
4.根据权利要求1所述的基于开放平台接口服务执行方法,其特征在于,所述网关服务以流的方式将接口模板信息拉去到网关服务平台,并将接口模板生成一个实际可提供服务的文件包包括以下步骤:
步骤4.1:网关获取到接口目录节点更新内容;
步骤4.2:将节点接口信息序列化到本地目录;
步骤4.3:拿到节点信息接口拆组包文件后进行判断是否为拆组包文件并且区分为拆包或组包文件;
步骤4.4:网关调用拆包解析工具类对拆包模板进行解析,获取模板字段排列方式和属性值,生成消费端拆包和服务提供端拆包的.java文件;
步骤4.5:网关调用拆包解析工具类对组包模板进行解析,获取组包模板字段排列方式和属性值,生成服务提供端组包和消费端拆包的.java文件;
步骤4.6:拆组包的java文件生成之后网关直接编译成.class文件保存到本地并且加载到网关内存区中;
步骤4.7:拆组包文件模板转化过程结束。
5.根据权利要求1所述的基于开放平台接口服务执行方法,其特征在于,所述当调用端发送请求到网关时,网关通过调用端的请求信息路由具体接口包括以下步骤:
步骤5.1:消费方发起请求到开放平台;
步骤5.2:解析路径定义服务位置中的接口是否存在;
步骤5.3:若接口存在,即进行服务识别等基础服务,若接口不存在,返回”非法请求”;
步骤5.4:开始解析请求json报文;
步骤5.5:业务调用系统请求发送处理结束。
6.根据权利要求5所述的基于开放平台接口服务执行方法,其特征在于,所述在路由到具体接口后,网关通过所述接口的文件包提供拆组包服务,将请求Json报文拆解并组成业务系统能够接受解析的xml报文包括以下步骤:
步骤6.1:处理Json报文和消费端拆包模板的Java服务类以原始的Json报文和消费端拆包模板为入参调用内置函数parser()方法;
步骤6.2:parser()判断报文格式和类型是否为json,若成功,则进行步骤5.3,若失败直接返回异常给调用方;
步骤6.3:对原始json进行遍历,获取报文中所有key字符串;
步骤6.4:对key字符串进行重新赋值,是S=S+”/”+key;
步骤6.5:获取报文中key字符串对应的V值;
步骤6.6:判断V值是否为符串或数字类型,如是则进行步骤5.7;如否则对V值进行步骤6.3-6.5重新获取所有的报文V值;
步骤6.7:对拆包模板进行遍历,获取元素标签,通过t为索引定位元素标签中对应的子节点元素,获取节点元素的类型值;
步骤6.8:如未通过原始json字段的key字符串搜索到拆包模板中标签元素,则对该key字符串及下面的V值不处理;
步骤6.9:校验通过key字符串获取到的元素标签的属性是与v值的类型相同,如是则将该元素对应的S获取到并以S为key和对应的原生json的V值存入键值对形式存储k和v对象中。
7.根据权利要求1所述的基于开放平台接口服务执行方法,其特征在于,所述后端处理完毕后网关获取到后端响应xml报文,将后端xml报文进行拆解,再组成渠道接受并解析的Json报文包括以下步骤:
步骤8.1:业务端处理完毕后响应给开放平台xml报文;
步骤8.2:开放平台调用处理xml报文和服务提供端拆包模板的Java服务类中的内置函数parser(a,b),将xml报文和服务提供端组包模板文件作为入参传入parser()函数中;
步骤8.3:对业务端返回的报文进行初始判断,对服务提供端拆包模板的进行遍历解析,获取服务提供端拆包模板中的业务子元素节点t;
步骤8.4:获取节点t的属性字段并判断是否为子元素节点,如是则进行下一步,如不是则继续对该元素节点进行遍历;
步骤8.5:对子元素节点进行重新赋值,赋值规则为S=S+/+t;
步骤8.6:从xml报文中获取对应的节点简称V;
步骤8.7:将S和V以键值对的形式存入xml模板中的字段层级位置中并放入上下文;
步骤8.8:处理sdo对象和消费端租包模板的Java服务类中的packer()函数对消费端组包模板进行遍历,取到节点元素;
步骤8.9:将消费端组包文件中的所有节点元素N拿到;
步骤8.10:获取节点元素中的属性字段的T;
步骤8.11:将元素节点的名称重新赋值为S,重新命名规则为S=S+”/”+N,其中,N为元素节点名称;
步骤8.12:判断元素类型T是否为字符串或数字类型,如是则进行步骤8.13,如否则则代表该节点不为业务字段节点,是一个嵌套节点结构体,则将不为字符串或数字的节点信息进行遍历重新执行步骤8.10-8.15;
步骤8.13:创建一个Json对象,对节点元素N进行遍历,重复步骤8.9-8.12重新拿到业务元素节点的S;
步骤8.14:通过S取到对应xml模板中的字段层级位置中对象中的所有值并赋值给V;
步骤8.15:创建一个Json对象,将获取到的模板节点字段N和V以键值对的形式放入Json对象中序列化后返回给调用方。
8.一种基于开放平台接口服务系统,其特征在于,包括:
开发平台模块,用于接口模板开发,接口模板以xml形式存储,定义字段在对应xml模板中的字段层级位置中的路径;和接口注册发布,开发者将开发完成接口模板通过运维平台注册发布到注册中心;
注册中心模块,用于监听注册发布事件,网关服务监听运维平台向注册中心注册发布的接口模板信息,获取到具体增删改的接口模板信息;
网关系统模块,用于处理注册发布事件内容,网关服务以流的方式将接口模板信息拉去到网关服务平台,并将接口模板生成一个实际可提供服务的jar;和用于请求报文处理,在路由到具体接口后,网关通过该接口的jar提供拆组包服务,将请求Json报文拆解并组成业务系统可以接受解析的xml报文;
业务处理系统模块,用于业务处理,网关将处理完的请求xml报文送往后端业务系统处理;和用于返回结果处理,后端处理完毕后网关获取到后端响应xml报文,将后端xml报文进行拆解,再组成渠道可以接受并解析的Json报文;
业务调用系统模块,用于业务调用系统请求发送,当调用端发送请求到网关时,网关通过调用端的请求信息路由具体接口;和响应报文处理,将处理完成的Json报文响应给调用端。
9.一种电子设备,其特征在于,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-7任一项所述的基于开放平台接口服务执行方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机管理类程序,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的基于开放平台接口服务执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310954614.2A CN117097783A (zh) | 2023-07-31 | 2023-07-31 | 基于开放平台接口服务执行方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310954614.2A CN117097783A (zh) | 2023-07-31 | 2023-07-31 | 基于开放平台接口服务执行方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117097783A true CN117097783A (zh) | 2023-11-21 |
Family
ID=88777832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310954614.2A Pending CN117097783A (zh) | 2023-07-31 | 2023-07-31 | 基于开放平台接口服务执行方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117097783A (zh) |
-
2023
- 2023-07-31 CN CN202310954614.2A patent/CN117097783A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628661B (zh) | 云制造服务的自动建置方法、云制造系统 | |
CN100389572C (zh) | 一种远程调用通信组件的系统及方法 | |
CN1307553C (zh) | 语法分析扩展标记语言文件的装置和方法 | |
US6971093B1 (en) | Techniques for maintaining compatibility of a software core module and an interacting module | |
US20050071347A1 (en) | System and method for conversion between graph-based representations and structural text-based representations of business processes | |
CN109670081B (zh) | 业务请求处理的方法及装置 | |
US7509422B2 (en) | System and method for locating web services | |
CN104156313A (zh) | 一种Web服务测试用例自动生成方法 | |
CN103942055A (zh) | 面向融合网络混合服务流程编制语言的开发系统及方法 | |
CN101185303A (zh) | 创建用于绑定应用程序与关联后端服务器之间的消息的映射文档的系统及方法 | |
CN109460220A (zh) | 报文预定义代码生成方法、装置、电子设备和存储介质 | |
CN113227976A (zh) | 使用表述性状态转移(rest)应用编程接口(api)进行数据转换的方法、系统和计算机可读介质 | |
JP2011096045A (ja) | 計算機、計算機システム、及び、アプリケーション実行方法 | |
CN108804100B (zh) | 创建界面元素的方法、装置、存储介质及移动终端 | |
CN100512304C (zh) | 基于中间件平台提供网络服务的方法 | |
CN112988409B (zh) | 一种接口调用方法、装置、计算机设备及存储介质 | |
CN113434175A (zh) | 数据处理方法、装置、存储介质及设备 | |
US20090210748A1 (en) | Methods and systems to test airline information systems | |
US20050192929A1 (en) | Generation and conversion of object that provide for efficient object modification | |
CN113778897B (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN111338717B (zh) | 接口调用方法、应用程序升级方法及服务器和客户端 | |
KR100759815B1 (ko) | 패스토큰 기반 웹 서비스 캐싱 방법 | |
CN117097783A (zh) | 基于开放平台接口服务执行方法、系统、设备及存储介质 | |
CN111447279B (zh) | 服务器及接口解析服务包生成方法 | |
CN115269228A (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 |