CN114860834B - 一种关联查询请求的处理方法、装置、设备及存储介质 - Google Patents
一种关联查询请求的处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114860834B CN114860834B CN202210622962.5A CN202210622962A CN114860834B CN 114860834 B CN114860834 B CN 114860834B CN 202210622962 A CN202210622962 A CN 202210622962A CN 114860834 B CN114860834 B CN 114860834B
- Authority
- CN
- China
- Prior art keywords
- request
- call request
- target
- calling
- query
- 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
- 238000003672 processing method Methods 0.000 title abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 abstract description 7
- 230000000977 initiatory effect Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Abstract
本公开提供了一种关联查询请求的处理方法、装置、设备及存储介质,所述方法包括:当接收到目标应用程序接口API调用请求时,基于目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求并接收其返回的第一调用结果,基于第一返回参数值对预设中间变量进行赋值,并将携带预设中间变量的第二调用请求发送至第二目标服务器并接收其返回的第二调用结果,基于第一调用结果和第二调用结果,返回目标API调用请求对应的API调用结果。本公开通过引入预设中间变量,并对预设中间变量进行赋值,使得前端服务只需一次API调用即可完成关联查询请求,大大缩短了前端服务的响应时间,提升了用户体验。
Description
技术领域
本公开涉及数据处理领域,尤其涉及一种关联查询请求的处理方法、装置、设备及存储介质。
背景技术
关联查询请求是指使用上一次查询请求的返回结果作为下一次查询请求的查询参数。例如针对根据某个用户的用户ID查询其所在部门编号以及该部门编号对应的所有员工的查询需求,首先基于用户ID查询得到对应的部门编号,然后将该部门编号作为下一次查询的查询参数,发起下一次查询请求,以上对应一次关联查询请求。
相关技术中,在基于GraphQL API进行关联查询时,通常需要多次调用GraphQLAPI,导致了前端服务响应时间较长,影响用户体验。如图1所示,前端服务在进行关联查询时,首先发起第一GraphQL API调用请求,基于后端服务得到第一GraphQL API调用结果,再发起第二GraphQL API调用请求,基于后端服务得到第二GraphQL API调用结果,从而完成一次关联查询请求。
发明内容
为了解决上述技术问题,本公开实施例提供了一种关联查询请求的处理方法。
第一方面,本公开提供了一种关联查询请求的处理方法,所述方法包括:
当接收到目标应用程序接口API调用请求时,基于所述目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求;其中,所述目标API调用请求属于关联查询请求;
接收所述第一目标服务器针对所述第一调用请求返回的第一调用结果;其中,所述第一调用结果包括第一返回参数值,所述第一返回参数值与预设中间变量具有对应关系;
基于所述第一返回参数值对所述预设中间变量进行赋值,并将携带所述预设中间变量的第二调用请求发送至第二目标服务器;
接收所述第二目标服务器针对所述第二调用请求返回的第二调用结果;
基于所述第一调用结果和所述第二调用结果,返回所述目标API调用请求对应的API调用结果。
一种可选的实施方式中,所述基于所述第一返回参数值对所述预设中间变量进行赋值,包括:
将所述第一返回参数值赋值给所述预设中间变量。
一种可选的实施方式中,所述第一返回参数值与预设计算方式标识具有对应关系;所述基于所述第一返回参数值对所述预设中间变量进行赋值,包括:
确定所述第一返回参数值对应的预设中间变量的当前取值;
采用所述第一返回参数值对应的预设计算方式标识所标识的计算方式,对所述当前取值和所述第一返回参数值进行计算,得到计算结果;
将所述计算结果赋值给所述预设中间变量。
一种可选的实施方式中,所述当接收到目标应用程序接口API调用请求时,基于所述目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求,包括:
当接收到目标应用程序接口API调用请求时,确定所述目标API调用请求对应的查询语句定义;其中,所述查询语句定义中包括所述目标API调用请求对应的至少一条调用请求;
对所述目标API调用请求进行解析,得到所述目标API调用请求携带的查询参数;
将所述目标API调用请求对应的至少一条调用请求中携带所述查询参数的调用请求,确定为第一调用请求;
向第一目标服务器发送所述第一调用请求。
一种可选的实施方式中,所述基于所述第一调用结果和所述第二调用结果,返回所述目标API调用请求对应的API调用结果,包括:
当确定所述查询语句定义中包括所述至少一条调用请求均返回调用结果后,基于所述至少一条调用请求分别对应的调用结果,返回所述目标API调用请求对应的API调用结果。
一种可选的实施方式中,所述方法应用于GraphQL API服务。
第二方面,本公开提供了一种关联查询请求的处理装置,所述装置包括:
第一发送模块,用于当接收到目标应用程序接口API调用请求时,基于所述目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求;其中,所述目标API调用请求属于关联查询请求;
第一接收模块,用于接收所述第一目标服务器针对所述第一调用请求返回的第一调用结果;其中,所述第一调用结果包括第一返回参数值,所述第一返回参数值与预设中间变量具有对应关系;
第二发送模块,用于基于所述第一返回参数值对所述预设中间变量进行赋值,并将携带所述预设中间变量的第二调用请求发送至第二目标服务器;
第二接收模块,用于接收所述第二目标服务器针对所述第二调用请求返回的第二调用结果;
返回模块,用于基于所述第一调用结果和所述第二调用结果,返回所述目标API调用请求对应的API调用结果。
第三方面,本公开提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现上述的方法。
第四方面,本公开提供了一种关联查询请求的处理设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的方法。
第五方面,本公开提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述的方法。
本公开实施例提供的技术方案与现有技术相比至少具有如下优点:
本公开实施例提供了一种关联查询请求的处理方法,当接收到目标应用程序接口API调用请求时,基于目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求;其中,目标API调用请求属于关联查询请求,接收第一目标服务器针对第一调用请求返回的第一调用结果;其中,第一调用结果包括第一返回参数值,第一返回参数值与预设中间变量具有对应关系,基于第一返回参数值对预设中间变量进行赋值,并将携带预设中间变量的第二调用请求发送至第二目标服务器,接收第二目标服务器针对第二调用请求返回的第二调用结果,基于第一调用结果和第二调用结果,返回目标API调用请求对应的API调用结果。本公开通过引入预设中间变量,并基于第一调用结果对预设中间变量进行赋值的方式,即可触发第二调用请求的发起,无需等待前端服务发起第二次API调动请求,使得前端服务只需一次API调用即可完成关联查询请求,大大缩短了前端服务的响应时间,提升了用户体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的现有的关联查询请求的处理方法的实现流程图;
图2为本公开实施例提供的一种关联查询请求的处理方法的流程图;
图3为本公开实施例提供的一种基于GraphQL API服务的关联查询请求的处理方法的数据交互示意图;
图4为本公开实施例提供的一种关联查询请求的处理装置的结构示意图;
图5为本公开实施例提供的一种关联查询请求的处理设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
关联查询请求是指使用上一次查询请求的返回结果作为下一次查询请求的查询参数。例如针对根据某个用户的用户ID查询其所在部门编号以及该部门编号对应的所有员工的查询需求,首先基于用户ID查询得到对应的部门编号,然后将该部门编号作为下一次查询的查询参数,发起下一次查询请求,以上对应一次关联查询请求。
相关技术中,在基于GraphQL API进行关联查询时,通常需要多次调用GraphQLAPI,导致了前端服务响应时间较长,影响用户体验。如图1所示,前端服务在进行关联查询时,首先发起第一GraphQL API调用请求,基于后端服务得到第一GraphQL API调用结果,再发起第二GraphQL API调用请求,基于后端服务得到第二GraphQL API调用结果,从而完成一次关联查询请求。
为此,本公开提供了一种关联查询请求的处理方法,当接收到目标应用程序接口API调用请求时,基于目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求;其中,目标API调用请求属于关联查询请求,接收第一目标服务器针对第一调用请求返回的第一调用结果;其中,第一调用结果包括第一返回参数值,第一返回参数值与预设中间变量具有对应关系,基于第一返回参数值对预设中间变量进行赋值,并将携带预设中间变量的第二调用请求发送至第二目标服务器,接收第二目标服务器针对第二调用请求返回的第二调用结果,基于第一调用结果和第二调用结果,返回目标API调用请求对应的API调用结果。本公开通过引入预设中间变量,并基于第一调用结果对预设中间变量进行赋值的方式,即可触发第二调用请求的发起,无需等待前端服务发起第二次API调动请求,使得前端服务只需一次API调用即可完成关联查询请求,大大缩短了前端服务的响应时间,提升了用户体验。
基于此,本公开实施例提供了一种关联查询请求的处理方法,参考图2,为本公开实施例提供的一种关联查询请求的处理方法的流程图,该方法包括:
S201:当接收到目标应用程序接口API调用请求时,基于目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求。
其中,目标API调用请求属于关联查询请求。
本公开实施例中的关联查询请求的处理方法可以应用于GraphQL(Graph QueryLanguage,图状数据查询语言)API服务中,本公开在此不做任何限定。
关联查询请求是指使用上一次查询的结果作为下一次查询的查询参数的查询请求,例如:针对根据某个用户的用户ID查询其所在部门编号以及该部门编号对应的所有员工的查询需求,首先基于用户ID查询得到对应的部门编号,然后将该部门编号作为下一次查询的查询参数,发起下一次查询请求,以上对应一次关联查询请求。
第一目标服务器可以是任意一种应用服务器,其中,向第一目标服务器发送的第一调用请求可以是第一远程过程调用RPC请求,以下以第一RPC请求为例对本公开实施例进行介绍,具体的,第一RPC请求用于通过网络从远程计算机上请求服务。
在本公开实施例中,目标应用程序接口API调用请求属于关联查询请求,目标API调用请求可以为发送至GraphQL API的查询请求。当接收到目标API调用请求时,基于目标API调用请求携带的查询参数,向第一目标服务器发送第一RPC请求。
一种可选的实施方式中,当接收到目标API调用请求时,基于目标API调用请求的URL(Uniform Resource Locator,统一资源定位符)信息,确定目标API调用请求对应的查询语句定义。其中,URL信息用于唯一标识目标API调用请求,基于URL信息能够确定目标API调用请求对应的查询语句定义。
查询语句定义为预先定义的,查询语句定义与API调用请求的URL信息具有对应关系,URL信息与API调用请求具有对应关系。查询语句定义用于定义针对URL信息对应的API调用请求的处理方式。具体地,查询语句定义中可以包括API调用请求对应的至少一条RPC请求分别对应的构建方式、查询参数、执行顺序关系等等。
如下所示,为目标API调用请求对应的查询语句定义的示例:
其中,BookTitle为目标API调用请求携带的查询参数。BookInfo和AuthorInfo的实现分别对应于目标API调用请求对应的RPC请求的构建方式等。
另外,对目标API调用请求进行解析,可以得到目标API调用请求携带的查询参数,基于目标API调用请求对应的查询语句定义,可以将目标API调用请求对应的至少一条RPC请求中携带查询参数的RPC调用请求,确定为第一RPC请求,向第一目标服务器发送第一RPC请求。
参照上述目标API调用请求对应的查询语句定义的示例,目标API调用请求携带的查询参数为BookTitle,由于BookInfo(Title:$BookTitle)对应的RPC查询请求的查询参数为(Title:$BookTitle),因此,可以将目标API调用请求携带的查询参数BookTitle赋值给BookInfo(Title:$BookTitle),发起第一RPC请求。
第一RPC请求可以是仅基于目标API调用请求携带的查询参数能够发起的RPC请求,即第一RPC请求中仅携带目标API调用请求中的查询参数。
S202:接收第一目标服务器针对第一调用请求返回的第一调用结果。
其中,第一调用结果包括第一返回参数值,第一返回参数值与预设中间变量具有对应关系。
具体地,第一返回参数值是指第一RPC结果中包括的参数值,并且该参数值作为后续的RPC请求的查询参数。
继续参考上述查询语句定义,BookInfo(Title:$BookTitle)中定义的abstract与author两个参数均为第一RPC结果中的参数值,但是基于定义author@set(var:"$_author")可知,参数author又作为后续RPC请求的查询参数,因此,针对上述第一RPC请求返回的第一RPC结果中的参数author,可以称为第一返回参数值。
预设中间变量为预先定义的,继续参考上述查询语句定义,_author为预设中间变量,基于定义author@set(var:"$_author")可知,_author与第一返回参数值author具有对应关系。
S203:基于第一返回参数值对预设中间变量进行赋值,并将携带预设中间变量的第二调用请求发送至第二目标服务器。
其中,第二目标服务器可以是任意一种应用服务器,一种可选的实施方式中,第二目标服务器可以与第一目标服务器为同一服务器,也可以为不同的服务器。
在本公开实施例中,在接收到第一RPC结果后,从第一RPC结果中获取第一返回参数值,然后基于第一返回参数值对与该第一返回参数对应的预设中间变量进行赋值,得到赋值后的预设中间变量,再将携带该预设中间变量的第二RPC请求发送至第二目标服务器。
一种可选的实施方式中,在接收到第一RPC结果后,直接将第一返回参数值赋值给预设中间变量,并将携带预设中间变量的第二RPC请求发送至第二目标服务器。
继续参考上述查询语句定义的示例,在接收到第一RPC结果后,执行@set指令将第一RPC结果中的第一返回参数值author赋值给预设中间变量_author,然后将携带预设中间变量_author的第二RPC请求AuthorInfo(Author:$_author)发送至第二目标服务器。其中,第二目标服务器可以与第一目标服务器为同一服务器,也可以为不同的服务器。
另一种可选的实施方式中,预设中间变量还可以支持计算,具体地,在接收到第一RPC结果后,确定第一返回参数值对应的预设中间变量的当前取值,采用第一返回参数值对应的预设计算方式标识所标识的计算方式,对当前取值和第一返回参数值进行计算,得到计算结果,将计算结果赋值给预设中间变量,并将携带预设中间变量的第二RPC请求发送至第二目标服务器。
其中,第一返回参数值与预设计算方式标识具有对应关系。
预设计算方式标识是指预先设置的用于唯一标识计算方式的标识。
具体地,以下述代码为例:
field@set(var:_xxx,action:Action)
其中,field为第一返回参数值;_xxx为预设中间变量;Action为可选参数,用于存储预设计算方式标识。
示例性地,若可选参数为INCRBY,预设中间变量的取值需要在当前取值的基础上加上第一返回参数值field,若可选参数为DECRBY,预设中间变量的取值需要在当前取值的基础上减去第一返回参数值field。
需要说明的是,可选参数可根据计算需求进行设置,本公开在此不做任何限定。
在本公开实施例中,继续参考上述代码,在接收到第一RPC结果后,确定第一返回参数值field对应的预设中间变量_xxx的当前取值,若第一返回参数值field对应的预设计算方式标识为INCRBY,那么对预设中间变量_xxx的当前取值和第一返回参数值field进行加和计算,得到计算结果,再将计算结果赋值给预设中间变量,并将携带预设中间变量的第二RPC请求发送至第二目标服务器。
值得注意的是,第二RPC请求的查询参数不仅可以包括预设中间变量,还可以包括目标API调用请求携带的查询参数等。
S204:接收第二目标服务器针对第二调用请求返回的第二调用结果。
一种可选的实施方式中,目标API调用请求还可以对应于多于两条RPC请求,例如,第三RPC请求。其中,第三RPC请求的查询参数可以来自于目标API调用请求携带的查询参数,也可以来自于第一RPC请求或第二PRC请求的第一返回参数等,本公开实施例对此不做限制。
S205:基于第一调用结果和第二调用结果,返回目标API调用请求对应的API调用结果。
在本公开实施例中,在返回第一RPC结果和第二RPC结果后,基于第一RPC结果和第二RPC结果的返回参数,构建目标API调用请求对应的API调用结果并返回至前端服务。
一种可选的实施方式中,当确定查询语句定义中包括至少一条RPC请求均返回RPC结果后,基于至少一条RPC请求分别对应的RPC结果,构建并返回目标API调用请求对应的API调用结果。
在本公开实施例中,假设目标API调用请求对应的查询语句定义中定义有5条RPC请求,当上述5条RPC请求均返回RPC请求结果后,基于返回的RPC请求结果中的返回参数,构建目标API调用请求对应的API调用结果,并将目标API调用请求对应的API调用结果返回至前端服务。
本公开实施例提供的关联查询请求的处理方法中,当接收到目标应用程序接口API调用请求时,基于目标API调用请求携带的查询参数,向第一目标服务器发送第一远程过程调用RPC请求;其中,目标API调用请求属于关联查询请求,接收第一目标服务器针对第一RPC请求返回的第一RPC结果;其中,第一RPC结果包括第一返回参数值,第一返回参数值与预设中间变量具有对应关系,基于第一返回参数值对预设中间变量进行赋值,并将携带预设中间变量的第二RPC请求发送至第二目标服务器,接收第二目标服务器针对第二RPC请求返回的第二RPC结果,基于第一RPC结果和第二RPC结果,返回目标API调用请求对应的API调用结果。本公开通过引入预设中间变量,并基于第一RPC结果对预设中间变量进行赋值的方式,即可触发第二RPC请求的发起,无需等待前端服务发起第二次API调动请求,使得前端服务只需一次API调用即可完成关联查询请求,大大缩短了前端服务的响应时间,提升了用户体验。
实际应用中,该方法可以应用于GraphQL API服务,GraphQL是由Facebook开发并开源的一种基于API的查询语言,通过提供一个接口帮助前端精准查询所需数据。
参考图3,为本公开实施例提供的一种基于GraphQL API服务的关联查询请求的处理方法的数据交互示意图,具体地,GraphQL API服务在接收到前端服务发送的GraphQLAPI调用请求后,首先基于GraphQL API调用请求的URL信息,确定GraphQL API调用请求对应的查询语句定义,其中,查询语句定义中包括如图3所示的GraphQL API调用请求对应的第一RPC请求及第二RPC请求分别对应的构建方式、查询参数、执行顺序关系等。
另外,对GraphQL API调用请求进行解析,得到GraphQL API调用请求携带的查询参数,再基于GraphQL API调用请求对应的查询语句定义,向第一目标服务器发送第一RPC请求,第一目标服务器在接收到该第一RPC请求后,返回第一RPC结果,其中,第一RPC结果中的部分或全部结果信息可以返回至API调用结果中,其他部分或全部结果信息可以作为第一返回参数赋值给预设中间变量,再将携带预设中间变量的第二RPC请求发送至第二目标服务器,可选地,预设中间变量还可以支持计算,在计算完成后,计算结果可直接返回至API调用结果中,还可以作为第二RPC请求的查询参数。
第二目标服务器接收到该第二RPC请求后,返回第二RPC结果至API调用结果中,基于第一RPC结果和第二RPC结果以及预设中间变量对应的计算结果,构建GraphQL API调用请求对应的API调用结果并返回至前端服务。
可选地,GraphQL API调用请求对应的至少一个RPC请求中还可包括第三RPC请求,第三RPC请求的查询参数可以来自于GraphQL API调用请求携带的查询参数,也可以来自于第一RPC请求或者第二RPC请求返回的RPC结果中。第三RPC请求发送至第三目标服务器,在接收到针对该第三PRC请求返回的第三RPC结果后,可以将其用于构建返回至前端服务的API调用结果。第三RPC结果还可以包括第一返回参数,继续用于对后续的RPC请求对应的预设中间变量进行赋值,本公开实施例在此不做任何限定。
需要说明的是,第一目标服务器、第二目标服务器、第三目标服务器可以为同一个服务器,也可以为不同的服务器。
在本公开实施例中,通过增加预设中间变量,将第一RPC结果中的第一返回参数赋值给预设中间变量,从而触发第二RPC请求,无需将第一RPC请求结果返回至前端服务,再由前端服务发起第二次GraphQL API调用,使得前端服务只需一次GraphQL API调用即可完成GraphQL API服务的关联查询请求,减少了前端服务发起API调用的请求次数,由于前端服务将GraphQL API调用请求发送至GraphQL API服务的耗时远远大于RPC请求的耗时,因此,本公开通过减少前端服务发起API调用的请求次数的方式,能够大大缩短针对来自前端服务的GraphQL API调用请求的响应时间,提升了用户体验。
基于上述方法实施例,本公开还提供了一种关联查询请求的处理装置,参考图4,为本公开实施例提供的一种关联查询请求的处理装置的结构示意图,所述装置包括:
第一发送模块401,用于当接收到目标应用程序接口API调用请求时,基于所述目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求;其中,所述目标API调用请求属于关联查询请求。
第一接收模块402,用于接收所述第一目标服务器针对所述第一调用请求返回的第一调用结果;其中,所述第一调用结果包括第一返回参数值,所述第一返回参数值与预设中间变量具有对应关系。
第二发送模块403,用于基于所述第一返回参数值对所述预设中间变量进行赋值,并将携带所述预设中间变量的第二调用请求发送至第二目标服务器。
第二接收模块404,用于接收所述第二目标服务器针对所述第二调用请求返回的第二调用结果。
返回模块405,用于基于所述第一调用结果和所述第二调用结果,返回所述目标API调用请求对应的API调用结果。
一种可选的实施方式中,第二发送模块,具体用于:
将所述第一返回参数值赋值给所述预设中间变量。
一种可选的实施方式中,所述第二发送模块,包括:
第一确定子模块,用于确定所述第一返回参数值对应的预设中间变量的当前取值;
计算子模块,用于采用所述第一返回参数值对应的预设计算方式标识所标识的计算方式,对所述当前取值和所述第一返回参数值进行计算,得到计算结果;
赋值子模块,用于将所述计算结果赋值给所述预设中间变量。
一种可选的实施方式中,所述第一发送模块,包括:
第二确定子模块,用于当接收到目标应用程序接口API调用请求时,确定所述目标API调用请求对应的查询语句定义;其中,所述查询语句定义中包括所述目标API调用请求对应的至少一条调用请求;
解析子模块,用于对所述目标API调用请求进行解析,得到所述目标API调用请求携带的查询参数;
第三确定子模块,用于将所述目标API调用请求对应的至少一条调用请求中携带所述查询参数的调用请求,确定为第一调用请求;
发送子模块,用于向第一目标服务器发送所述第一调用请求。
一种可选的实施方式中,返回模块,具体用于:
当确定所述查询语句定义中包括所述至少一条调用请求均返回调用结果后,基于所述至少一条调用请求分别对应的调用结果,返回所述目标API调用请求对应的API调用结果。
一种可选的实施方式中,所述方法应用于GraphQL API服务。
本公开实施例提供的关联查询请求的处理装置中,当接收到目标应用程序接口API调用请求时,基于目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求;其中,目标API调用请求属于关联查询请求,接收第一目标服务器针对第一调用请求返回的第一调用结果;其中,第一调用结果包括第一返回参数值,第一返回参数值与预设中间变量具有对应关系,基于第一返回参数值对预设中间变量进行赋值,并将携带预设中间变量的第二调用请求发送至第二目标服务器,接收第二目标服务器针对第二调用请求返回的第二调用结果,基于第一调用结果和第二调用结果,返回目标API调用请求对应的API调用结果。本公开通过引入预设中间变量,并基于第一调用结果对预设中间变量进行赋值的方式,即可触发第二调用请求的发起,无需等待前端服务发起第二次API调动请求,使得前端服务只需一次API调用即可完成关联查询请求,大大缩短了前端服务的响应时间,提升了用户体验。
除了上述方法和装置以外,本公开实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现本公开实施例所述的关联查询请求的处理方法。
本公开实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现本公开实施例所述的关联查询请求的处理方法。
另外,本公开实施例还提供了一种关联查询请求的处理设备,参见图5所示,可以包括:
处理器501、存储器502、输入装置503和输出装置504。关联查询请求的处理设备中的处理器501的数量可以一个或多个,图5中以一个处理器为例。在本公开的一些实施例中,处理器501、存储器502、输入装置503和输出装置504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行关联查询请求的处理设备的各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置503可用于接收输入的数字或字符信息,以及产生与关联查询请求的处理设备的用户设置以及功能控制有关的信号输入。
具体在本实施例中,处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现上述关联查询请求的处理设备的各种功能。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种关联查询请求的处理方法,其特征在于,所述方法包括:
当接收到目标应用程序接口API调用请求时,基于所述目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求;其中,所述目标API调用请求属于关联查询请求;
接收所述第一目标服务器针对所述第一调用请求返回的第一调用结果;其中,所述第一调用结果包括第一返回参数值,所述第一返回参数值与预设中间变量具有对应关系;
基于所述第一返回参数值对所述预设中间变量进行赋值,并将携带所述预设中间变量的第二调用请求发送至第二目标服务器;
接收所述第二目标服务器针对所述第二调用请求返回的第二调用结果;
基于所述第一调用结果和所述第二调用结果,返回所述目标API调用请求对应的API调用结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一返回参数值对所述预设中间变量进行赋值,包括:
将所述第一返回参数值赋值给所述预设中间变量。
3.根据权利要求1所述的方法,其特征在于,所述第一返回参数值与预设计算方式标识具有对应关系;所述基于所述第一返回参数值对所述预设中间变量进行赋值,包括:
确定所述第一返回参数值对应的预设中间变量的当前取值;
采用所述第一返回参数值对应的预设计算方式标识所标识的计算方式,对所述当前取值和所述第一返回参数值进行计算,得到计算结果;
将所述计算结果赋值给所述预设中间变量。
4.根据权利要求1所述的方法,其特征在于,所述当接收到目标应用程序接口API调用请求时,基于所述目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求,包括:
当接收到目标应用程序接口API调用请求时,确定所述目标API调用请求对应的查询语句定义;其中,所述查询语句定义中包括所述目标API调用请求对应的至少一条调用请求;
对所述目标API调用请求进行解析,得到所述目标API调用请求携带的查询参数;
将所述目标API调用请求对应的至少一条调用请求中携带所述查询参数的调用请求,确定为第一调用请求;
向第一目标服务器发送所述第一调用请求。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第一调用结果和所述第二调用结果,返回所述目标API调用请求对应的API调用结果,包括:
当确定所述查询语句定义中包括所述至少一条调用请求均返回调用结果后,基于所述至少一条调用请求分别对应的调用结果,返回所述目标API调用请求对应的API调用结果。
6.根据权利要求1所述的方法,其特征在于,所述方法应用于GraphQL API服务。
7.一种关联查询请求的处理装置,其特征在于,所述装置包括:
第一发送模块,用于当接收到目标应用程序接口API调用请求时,基于所述目标API调用请求携带的查询参数,向第一目标服务器发送第一调用请求;其中,所述目标API调用请求属于关联查询请求;
第一接收模块,用于接收所述第一目标服务器针对所述第一调用请求返回的第一调用结果;其中,所述第一调用结果包括第一返回参数值,所述第一返回参数值与预设中间变量具有对应关系;
第二发送模块,用于基于所述第一返回参数值对所述预设中间变量进行赋值,并将携带所述预设中间变量的第二调用请求发送至第二目标服务器;
第二接收模块,用于接收所述第二目标服务器针对所述第二调用请求返回的第二调用结果;
返回模块,用于基于所述第一调用结果和所述第二调用结果,返回所述目标API调用请求对应的API调用结果。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现如权利要求1-6任一项所述的方法。
9.一种关联查询请求的处理设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-6任一项所述的方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210622962.5A CN114860834B (zh) | 2022-06-01 | 2022-06-01 | 一种关联查询请求的处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210622962.5A CN114860834B (zh) | 2022-06-01 | 2022-06-01 | 一种关联查询请求的处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114860834A CN114860834A (zh) | 2022-08-05 |
CN114860834B true CN114860834B (zh) | 2024-03-26 |
Family
ID=82625162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210622962.5A Active CN114860834B (zh) | 2022-06-01 | 2022-06-01 | 一种关联查询请求的处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860834B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116800769B (zh) * | 2023-08-29 | 2023-12-29 | 北京趋动智能科技有限公司 | Api远程调用请求的处理方法、处理装置、用户终端及服务器 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639636A (zh) * | 2018-11-06 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 业务数据转发、业务数据处理方法、装置及电子设备 |
US10452650B1 (en) * | 2016-09-08 | 2019-10-22 | Google Llc | Data querying |
CN110865854A (zh) * | 2019-11-11 | 2020-03-06 | 科大国创软件股份有限公司 | 一种支持热部署的接口调用编排方法 |
CN111984849A (zh) * | 2019-05-24 | 2020-11-24 | 北京京东尚科信息技术有限公司 | 一种信息查询方法、装置、设备及介质 |
US10853150B1 (en) * | 2019-12-31 | 2020-12-01 | Fujitsu Limited | Generating application programming interface knowledge graphs |
CN112597187A (zh) * | 2021-03-03 | 2021-04-02 | 北京冠新医卫软件科技有限公司 | 基于FHIR标准的GraphQL查询方法和装置 |
US11055282B1 (en) * | 2020-03-31 | 2021-07-06 | Atlassian Pty Ltd. | Translating graph queries into efficient network protocol requests |
CN113806037A (zh) * | 2021-07-14 | 2021-12-17 | 远光软件股份有限公司 | 服务的调用方法、装置、存储介质及电子设备 |
CN114116256A (zh) * | 2021-11-06 | 2022-03-01 | 招联消费金融有限公司 | 变量调用方法、装置、计算机设备和存储介质 |
CN114528044A (zh) * | 2022-02-17 | 2022-05-24 | 深圳乐信软件技术有限公司 | 一种接口调用方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366368B2 (en) * | 2016-09-22 | 2019-07-30 | Microsoft Technology Licensing, Llc | Search prioritization among users in communication platforms |
US20190102465A1 (en) * | 2017-09-29 | 2019-04-04 | Ca, Inc. | Api query extension |
US11381601B2 (en) * | 2020-01-15 | 2022-07-05 | International Business Machines Corporation | Customizable dynamic GraphQL API management platform |
-
2022
- 2022-06-01 CN CN202210622962.5A patent/CN114860834B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10452650B1 (en) * | 2016-09-08 | 2019-10-22 | Google Llc | Data querying |
CN109639636A (zh) * | 2018-11-06 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 业务数据转发、业务数据处理方法、装置及电子设备 |
CN111984849A (zh) * | 2019-05-24 | 2020-11-24 | 北京京东尚科信息技术有限公司 | 一种信息查询方法、装置、设备及介质 |
CN110865854A (zh) * | 2019-11-11 | 2020-03-06 | 科大国创软件股份有限公司 | 一种支持热部署的接口调用编排方法 |
US10853150B1 (en) * | 2019-12-31 | 2020-12-01 | Fujitsu Limited | Generating application programming interface knowledge graphs |
US11055282B1 (en) * | 2020-03-31 | 2021-07-06 | Atlassian Pty Ltd. | Translating graph queries into efficient network protocol requests |
CN112597187A (zh) * | 2021-03-03 | 2021-04-02 | 北京冠新医卫软件科技有限公司 | 基于FHIR标准的GraphQL查询方法和装置 |
CN113806037A (zh) * | 2021-07-14 | 2021-12-17 | 远光软件股份有限公司 | 服务的调用方法、装置、存储介质及电子设备 |
CN114116256A (zh) * | 2021-11-06 | 2022-03-01 | 招联消费金融有限公司 | 变量调用方法、装置、计算机设备和存储介质 |
CN114528044A (zh) * | 2022-02-17 | 2022-05-24 | 深圳乐信软件技术有限公司 | 一种接口调用方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114860834A (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109150978B (zh) | 调试微服务的方法和装置 | |
JP2008262541A (ja) | 式の処理を改良した方法、装置、およびコンピュータプログラム | |
CN114860834B (zh) | 一种关联查询请求的处理方法、装置、设备及存储介质 | |
CN113364853A (zh) | 一种业务服务系统、业务请求方法及网关设备 | |
CN111639279A (zh) | 图形码生成方法、目标页面加载方法和装置 | |
CN111475788A (zh) | 跨境电商平台账号注册方法、装置、终端及存储介质 | |
CN114722036A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN109446445B (zh) | 一种资源获取方法及装置 | |
CN113901021A (zh) | 用于多版本数据库的升级脚本生成方法、装置与电子设备 | |
CN113312374A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN111209325A (zh) | 业务系统接口识别方法、装置及存储介质 | |
CN114139079A (zh) | 一种api请求的处理方法、装置、设备及存储介质 | |
CN113660359A (zh) | 域名解析记录的管理方法及装置、存储介质及电子设备 | |
CN113271334A (zh) | 基于SaaS场景下的业务策略分发方法、装置及电子设备 | |
CN113094574A (zh) | 一种信息查询方法、装置、电子设备及可读存储介质 | |
CN112558950A (zh) | 系统接口生成方法及装置 | |
CN111078571A (zh) | 模拟响应的测试方法、终端设备及计算机可读存储介质 | |
CN112328598A (zh) | Id生成方法、装置、电子设备及存储介质 | |
CN108733668B (zh) | 用于查询数据的方法和装置 | |
CN110704498A (zh) | 数据提取方法、装置、设备及计算机可读存储介质 | |
CN111061543A (zh) | 一种多租户工作流引擎服务方法、装置及服务器 | |
CN114780267B (zh) | 一种接口调用方法、装置、设备及存储介质 | |
CN111104634B (zh) | 灰度用户的方法、服务器及存储介质 | |
CN107610690B (zh) | 一种数据处理方法和装置 | |
CN114745376B (zh) | 一种ZooKeeper集群运维方法、装置及电子设备、存储介质 |
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 |