本文作者:kaifamei

基于接口的查询方法、装置以及存储介质与流程

更新时间:2025-12-21 23:27:10 0条评论

基于接口的查询方法、装置以及存储介质与流程



1.本技术涉及信息技术领域,特别是涉及一种基于接口的查询方法、装置以及存储介质。


背景技术:

2.现代信息化系统的建设,主要采用三层架构。分别为前端层,后端层和数据存储层。而后端层的开发人员,有相当比例的工作是在针对单表做接口开发。其接口包括单条和分页查询,单条和批量删除修改等操作。目前已经有一些技术手段去简化该工作,比如代码辅助生成等技术。但它们都仅仅只是辅助开发而已。开发人员还是需要手动编写一些代码,因此效率较低。
3.针对上述的现有技术中存在的针对单表做接口开发而造成的效率低的技术问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本技术的实施例提供了一种基于接口的查询方法、装置以及存储介质,以至少解决现有技术中存在的针对单表做接口开发而造成的效率低的技术问题。
5.根据本技术实施例的一个方面,提供了一种基于接口的查询方法,包括:根据微服务标识将接口请求发送至对应的微服务;在单表操作的情况下,通过单表接口封装包确定接口请求中的请求对象以及接口;以及根据请求对象以及接口执行查询命令。
6.根据本技术实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
7.根据本技术实施例的另一个方面,还提供了一种基于接口的查询装置,包括:第一发送模块,用于根据微服务标识将接口请求发送至对应的微服务;第一确定模块,用于在单表操作的情况下,通过单表接口封装包确定接口请求中的请求对象以及接口;以及第一执行模块,用于根据请求对象以及接口执行查询命令。
8.根据本技术实施例的另一个方面,还提供了一种基于接口的查询装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:根据微服务标识将接口请求发送至对应的微服务;在单表操作的情况下,通过单表接口封装包确定接口请求中的请求对象以及接口;以及根据请求对象以及接口执行查询命令。
9.在本技术实施例中,通过json解析技术和对象语言的集合技术,对请求进行动态解析。并且通过sql语法解析技术动态生成sql语言。同时利用spring boot的动态装配技术,在公共jar包预先封装好通用接口的情况下,可实现spring boot微服务引用该jar包就可以具备增删改查分页批量处理等接口。再结合对表对象的校验技术,从而在无需部署的情况下实现对任意表进行相应操作。同时接口还可以随着表结构的变更自动调整。实现了零编码的情况下完成了单表接口的开发。同时还实现了后端服务无需重新发布部署的情况下,就完成了任意单表的接口开发。进而解决了针对单表做接口开发而造成的效率低的技
术问题。
附图说明
10.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
11.图1是用于实现根据本技术实施例1所述的方法的计算设备的硬件结构框图;
12.图2是根据本技术实施例1所述的基于接口的查询的系统的示意图;
13.图3是根据本技术实施例1的第一个方面所述的基于接口的查询方法的流程示意图;
14.图4是根据本技术实施例1的第一个方面所述的基于接口的查询方法的另一个流程示意图;
15.图5是根据本技术实施例2所述的基于接口的查询装置的示意图;以及
16.图6是根据本技术实施例3所述的基于接口的查询装置的示意图。
具体实施方式
17.为了使本技术领域的人员更好地理解本技术的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
18.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
19.实施例1
20.根据本实施例,提供了一种基于接口的查询方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
21.本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现基于接口的查询方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。
例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
22.应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
23.存储器可用于存储应用软件的软件程序以及模块,如本技术实施例中的基于接口的查询方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的基于接口的查询方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
24.传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(network interface controller,nic),其可通过与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
25.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
26.此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
27.图2是根据本实施例所述的基于接口的查询的系统的示意图。参照图2所示,该系统包括:前端、后端以及数据库。其中后端包括微服务a、微服务b以及微服务c,并且每个微服务中都预先设置有单表接口封装包。其中微服务a与数据库a连接,微服务b与数据库b连接,微服务c与数据库c连接。前端将接口请求发送至后端,后端根据接口请求将接口请求发送至对应的微服务,微服务接收到接口请求后,利用相应的数据库对该接口请求进行响应。
28.需要说明的是,系统中的前端、后端以及数据库均可适用上面所述的硬件结构。
29.在上述运行环境下,根据本实施例的第一个方面,提供了一种基于接口的查询方法,该方法由图2中所示的系统实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
30.s302:根据微服务标识将接口请求发送至对应的微服务;
31.s304:在单表操作的情况下,通过单表接口封装包确定接口请求中的请求对象以及接口;以及
32.s306:在单表操作的情况下,通过单表接口封装包确定接口请求中的请求对象以及接口。
33.具体地,前端将接口请求发送至后端的网关。其中接口请求包括微服务标识、前缀标识、请求对象以及接口。例如接口请求中的微服务标识为“w_a”前缀标识为“_api”,请求对象为“customer”,接口为“save”。则接口请求可以表示为“w_a/_api/customer/save”。
34.进一步地,网关接收到接口请求后,对该接口请求进行解析,从而得到“w_a/_api/customer/save”,并根据接口请求中的微服务标识确定对应的微服务。例如微服务a的标识为“w_a”,微服务a的标识为“w_b”。从而网关根据接口请求中的为服务标识“w_a”确定对应的为微服务为微服务a,并将接口请求发送给微服务a。
35.进一步地,微服务接收到接口请求后,对该接口请求进行解析,从而得到“w_a/_api/customer/save”,并根据前缀标识确定接口请求是否用于单表操作。当微服务确定是单表操作时,将接口请求发送至微服务中预先设置的单表接口封装包。
36.进一步地,单表接口封装包确定接口请求中的请求对象“customer”。其中请求对象预先与单表建立有映射关系。从而单表接口封装包根据映射关系确定与请求对象“customer”对应的单表,并且获取该单表的单表名称。之后单表接口封装包确定接口请求中的接口“save”,其中该接口用于指示sql。之后单表接口封装包根据单表名称获取数据库中的单表,并利用该单表执行该sql。
37.正如背景技术中所述的,现代信息化系统的建设,主要采用三层架构。分别为前端层,后端层和数据存储层。而后端层的开发人员,有相当比例的工作是在针对单表做接口开发。其接口包括单条和分页查询,单条和批量删除修改等操作。目前已经有一些技术手段去简化该工作,比如代码辅助生成等技术。但它们都仅仅只是辅助开发而已。开发人员还是需要手动编写一些代码,因此效率较低。
38.针对以上所述的技术问题,通过本技术实施例的技术方案,通过json解析技术和对象语言的集合技术,对请求进行动态解析。并且通过sql语法解析技术动态生成sql语言。同时利用spring boot的动态装配技术,在公共jar包预先封装好通用接口的情况下,可实现spring boot微服务引用该jar包就可以具备增删改查分页批量处理等接口。再结合对表对象的校验技术,从而在无需部署的情况下实现对任意表进行相应操作。同时接口还可以随着表结构的变更自动调整。实现了零编码的情况下完成了单表接口的开发。同时还实现了后端服务无需重新发布部署的情况下,就完成了任意单表的接口开发。进而解决了针对单表做接口开发而造成的效率低的技术问题。
39.可选地,方法还包括:通过单表接口封装包确定接口请求中的请求对象以及接口之前,将接口请求中的前缀标识与单表接口封装包中的前缀标识进行比较,确定前缀比较结果,其中前缀比较结果用于指示是否为单表操作。
40.具体地,微服务接收到接口请求后,对该接口请求进行解析,从而得到“w_a/_api/customer/save”。之后获取接口请求的前缀标识“_api”,之后获取单表接口封装包中的所有预先存储的前缀标识,之后将接口请求的前缀标识“_api”与单表接口封装包中的前缀标识进行匹配,当接口请求的前缀标识“_api”匹配到单表接口封装包中相应的前缀标识,则微服务判定接口请求用于单表操作,从而将接口请求发送至微服务中预先设置的单表接口封装包。当接口请求的前缀标识“_api”未匹配到单表接口封装包中相应的前缀标识,则微服务判定接口请求不用于单表操作,从而将该接口请求转发给其他对应的接口。从而本技术方案通过前缀标识确定是否为单表操作,从而可以通过单表接口封装包快速确定单表,
提高了单表查询效率。
41.可选地,方法还包括:获取接口请求中的接口;以及对接口进行开放性校验,其中开放性校验用于检测接口是否允许请求。
42.具体地,参考图4所示,单表接口封装包接收到接口请求后,获取接口请求中的请求的接口,之后检测该接口是否允许访问,当接口允许访问,则判定该接口是开放状态的,从而可以请求该接口。当接口不允许访问,则判定该接口是关闭状态的,从而提示“接口禁止访问”。从而本技术方案通过对接口设置状态,从而使得接口可以阻挡非法访问,提高了接口的安全性。
43.可选地,方法还包括:获取接口请求中的请求对象;以及根据请求对象确定对应的单表,并检测单表是否存在于数据库中。
44.具体的,单表接口封装包接收到接口请求后,获取接口请求中的请求对象。根据请求对象与单表的映射关系,确定与请求对象对应的单表的名称。并根据该单表名称在数据库中进行查。当在数据库中查到该单表后,则确定该单表存在,否则提示访问对象不存在。从而本技术方案在执行sql之前,会提前检测单表是否存在,从而防止sql在执行过程中因单表不存在而造成的报错的情况。
45.此外,本方案提供了一种可在微服务上实现任意单表的接口自带技术,所述方案包括:
46.1.单表通用接口定义
47.该步骤是定义单表操作的通用接口。其接口包括单条和分页查询,单条和批量删除修改等操作。以java语言为例,可以采用springmvc框架定义接口。接口信息主要包括要单表接口通用前缀,单表对象名称,以及相应的请求数据参数。
48.2.接口逻辑实现
49.该步骤主要包括4个部分。分别为接口参数动态解析,参数转换,参数校验和sql动态生成。接口参数动态解析主要是采用java集合和json解析技术生成java对象。参数转换主要是针对一些代码和实际值之间的转换。参数校验主要是一些参数合法性的校验,以及是否有该接口访问权限的校验。sql动态生成主要是利用sql语法解析功能动态生成对数据库操作的sql语句。
50.3、单表接口封装包的封装
51.该步骤主要是利用spring boot的动态装配技术封装一个jar包。微服务只要引用该jar,预定义的单表通用接口被会随着服务的启动一起初始化。然后针对该微服务的单表请求将自动由该封装包完成。微服务不用再需要编写代码。
52.具体运行流程图见图2.
53.4、微服务集成
54.该步骤是后端微服务通过集成公共jar包,从而获得对所有的单表的各种操作接口。也就是,只要表存在,就可以通过预定义的接口去操作。
55.此外,参考图2所示,在整体架构中,分前端,后端和数据库三层。该技术作用在后端各个微服务内部。该方案可以使后端各个微服务,不用再通过编码的方式去实现单表的操作。所有针对单表的操作都通过单表接口封装包完成。而单表接口封装包是提前封装好的一个通用的接口包。微服务只要按照步骤做下集成就可以具备所有单表的操作接口。
56.一种可在微服务上实现任意单表的接口自带技术的运行流程图,参考图4所示:
57.在运行流程图中,接口请求进入微服务之后,会根据单表接口封装包里的通用接口前缀自动匹配。假定前缀为“_api”,那么请求匹配该前缀将进入单表接口封装包内进行处理,否则进入微服务自己编码实现的接口处理。示例接口“w_a/_api/customer/save”中的请求前缀是“_api”,请求对象就是customer,针对customer的接口是save。当请求进入单表接口封装包之后,会先解析请求的对象。再看请求对象的名称和单表名字是否在微服务集成时做了配置,如果没有到配置,就默认该对象名是单表名称。然后再根据请求对象检查是否配置该对象的接口开放性限制,如果未开放的话,则提示禁止访问。再然后根据单表名称检查单表在数据库中是否真的存在,只有存在的情况下才会根据sql语法去动态封装该请求对应的数据库操作sql。否则提示操作对象不存在。
58.此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
59.从而根据本实施例,通过json解析技术和对象语言的集合技术,对请求进行动态解析。并且通过sql语法解析技术动态生成sql语言。同时利用spring boot的动态装配技术,在公共jar包预先封装好通用接口的情况下,可实现spring boot微服务引用该jar包就可以具备增删改查分页批量处理等接口。再结合对表对象的校验技术,从而在无需部署的情况下实现对任意表进行相应操作。同时接口还可以随着表结构的变更自动调整。实现了零编码的情况下完成了单表接口的开发。同时还实现了后端服务无需重新发布部署的情况下,就完成了任意单表的接口开发。进而解决了针对单表做接口开发而造成的效率低的技术问题。
60.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
61.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
62.实施例2
63.图5示出了根据本实施例的第一个方面所述的基于接口的查询装置500,该装置500与根据实施例1的第一个方面所述的方法相对应。参考图5所示,该装置500包括:第一发送模块510,用于根据微服务标识将接口请求发送至对应的微服务;第一确定模块520,用于在单表操作的情况下,通过单表接口封装包确定接口请求中的请求对象以及接口;以及第一执行模块530,用于根据请求对象以及接口执行查询命令。
64.可选地,装置还包括:第二确定模块,用于通过单表接口封装包确定接口请求中的请求对象以及接口之前,将接口请求中的前缀标识与单表接口封装包中的前缀标识进行比
较,确定前缀比较结果,其中前缀比较结果用于指示是否为单表操作。
65.可选地,装置还包括:第二获取模块,用于获取接口请求中的接口;以及校验模块,用于对接口进行开放性校验,其中开放性校验用于检测接口是否允许请求。
66.可选地,装置还包括:第三获取模块,用于获取接口请求中的请求对象;以及检测模块,用于根据请求对象确定对应的单表,并检测单表是否存在于数据库中。
67.从而根据本实施例,通过json解析技术和对象语言的集合技术,对请求进行动态解析。并且通过sql语法解析技术动态生成sql语言。同时利用spring boot的动态装配技术,在公共jar包预先封装好通用接口的情况下,可实现spring boot微服务引用该jar包就可以具备增删改查分页批量处理等接口。再结合对表对象的校验技术,从而在无需部署的情况下实现对任意表进行相应操作。同时接口还可以随着表结构的变更自动调整。实现了零编码的情况下完成了单表接口的开发。同时还实现了后端服务无需重新发布部署的情况下,就完成了任意单表的接口开发。进而解决了针对单表做接口开发而造成的效率低的技术问题。
68.实施例3
69.图6示出了根据本实施例的第一个方面所述的基于接口的查询装置600,该装置600与根据实施例1的第一个方面所述的方法相对应。参考图6所示,该装置600包括:处理器610;以及存储器620,与处理器610连接,用于为处理器610提供处理以下处理步骤的指令:根据微服务标识将接口请求发送至对应的微服务;在单表操作的情况下,通过单表接口封装包确定接口请求中的请求对象以及接口;以及根据请求对象以及接口执行查询命令。
70.可选地,装置还包括:通过单表接口封装包确定接口请求中的请求对象以及接口之前,将接口请求中的前缀标识与单表接口封装包中的前缀标识进行比较,确定前缀比较结果,其中前缀比较结果用于指示是否为单表操作。
71.可选地,装置还包括:获取接口请求中的接口;以及对接口进行开放性校验,其中开放性校验用于检测接口是否允许请求。
72.可选地,装置还包括:获取接口请求中的请求对象;以及根据请求对象确定对应的单表,并检测单表是否存在于数据库中。
73.从而根据本实施例,通过json解析技术和对象语言的集合技术,对请求进行动态解析。并且通过sql语法解析技术动态生成sql语言。同时利用spring boot的动态装配技术,在公共jar包预先封装好通用接口的情况下,可实现spring boot微服务引用该jar包就可以具备增删改查分页批量处理等接口。再结合对表对象的校验技术,从而在无需部署的情况下实现对任意表进行相应操作。同时接口还可以随着表结构的变更自动调整。实现了零编码的情况下完成了单表接口的开发。同时还实现了后端服务无需重新发布部署的情况下,就完成了任意单表的接口开发。进而解决了针对单表做接口开发而造成的效率低的技术问题。
74.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
75.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
76.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为
一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
77.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
78.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
79.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
80.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-10-889-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-11-27 21:15:39

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论