一种传输应用程序编程接口API请求的方法及装置与流程

文档序号:15358214发布日期:2018-09-05 00:16阅读:119来源:国知局
本申请涉及计算机
技术领域
,尤其涉及一种传输应用程序编程接口api请求的方法及装置。
背景技术
:目前,随着互联网技术和应用软件技术的发展,微服务架构由于其易于维护、迭代速度快等优势逐渐成为主流的应用程序架构。在微服务架构中,开发人员可以将应用程序拆分成多个独立运行的服务器,根据各服务器的安全等级将服务器划分为多个安全域。在每个安全域中设置应用程序编程接口(applicationprogramminginterface,api)网关,接收客户端发送的api请求,将该api请求转发给对应的服务器。在现有技术中,客户端发送的api请求中携带有请求地址。当api网关接收到该api请求时,对该api请求进行解析,得到该请求地址,然后根据该请求地址查询预先存储的请求地址与服务地址的对应关系表,得到目标服务地址,如果该目标服务地址为该api网关所属安全域的服务地址,则将该api请求转发给对应的服务器;如果该目标服务地址为其他安全域的api网关的地址(即api请求需要跨多个安全域),则将该api请求发送至下一跳api网关,下一跳api网关执行上述处理,直至转发给对应的服务器。然而,基于现有技术,当api请求需要跨多个安全域时,每个安全域中的api网关均需要查找预先存储请求地址与服务地址的对应关系表,由于该对应关系表中表项较多,导致查询耗时较长,影响api请求效率。技术实现要素:本发明实施例提供了一种传输应用程序编程接口api请求的方法,可以提高api请求效率。该技术方案如下:第一方面,提供了一种传输应用程序编程接口api请求的方法,所述方法包括:第一api网关接收第一api请求;所述第一api网关获取所述第一api请求对应的第一转发标签,所述第一转发标签包含第一目标安全域标识;其中,所述第一api网关的安全域标识与所述第一目标安全域标识不同;所述第一api网关根据所述第一目标安全域标识和第二api网关的地址的对应关系,确定所述第二api网关的地址,并根据所述第二api网关的地址,将所述第一api请求发送给所述第二api网关;其中,所述第二api网关为所述第一api网关向所述第一目标安全域标识对应的api网关发送所述第一api请求的下一跳api网关。在本发明的实施例中,第一api网关接收到第一api请求,可以根据第一转发标签的映射表,确定该第一api请求对应的第一转发标签,该第一转发标签包括第一目标安全域标识。然后第一api网关根据第一目标安全域标识和第二api网关的地址的对应关系,确定第二api网关的地址,并将第一api请求发送第二api网关,后续第二api网关可以直接根据第一转发标签进行处理,由于安全域标识的数量远少于请求地址的数量,减少了请求地址与服务地址的对应关系表的查询数量,从而提高api请求的效率。在一种可能的实现方式中,所述第一api网关获取所述第一api请求对应的第一转发标签,具体包括:获取所述第一api请求携带的请求路径;根据所述请求路径和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述第一api网关获取所述第一api请求对应的第一转发标签,具体包括:获取所述第一api请求携带的请求路径和第一参数,所述第一参数包括api调用方式和/或协议版本号;根据所述请求路径、所述第一参数和预设的特征值算法,确定所述第一api请求对应的特征值;根据所述特征值和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述第一api网关获取所述第一api请求对应的第一转发标签,具体包括:获取所述第一api请求携带的请求路径、第二参数和第三参数,所述第二参数包括api调用方式和/或协议版本号,所述第三参数包括请求头和/或请求附加参数;根据所述请求路径、所述第二参数和预设的特征值算法,确定所述第一api请求对应的特征值;根据所述特征值、所述第三参数和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述方法还包括:所述第一api网关接收第二api请求;其中,所述第二api请求携带有第二转发标签,所述第二转发标签包含所述第一api网关的安全域标识和第一目标服务地址;所述第一api网关删除所述第二api请求中的第二转发标签;所述第一api网关将删除所述第二转发标签后的第二api请求发送给所述第一目标服务地址对应的服务器。在一种可能的实现方式中,所述方法还包括:所述第一api网关接收第三api请求;所述第一api网关获取所述第三api请求对应的第三转发标签,所述第三转发标签包含所述第一api网关的安全域标识和第二目标服务地址;所述第一api网关将所述第三api请求发送给所述第二目标服务地址对应的服务器。第二方面,提供了一种传输应用程序编程接口api请求的装置,所述装置应用于第一api网关,所述装置包括:第一接收模块,用于接收第一api请求;第一获取模块,用于获取所述第一api请求对应的第一转发标签,所述第一转发标签包含第一目标安全域标识;其中,所述第一api网关的安全域标识与所述第一目标安全域标识不同;第一发送模块,用于根据所述第一目标安全域标识和第二api网关的地址的对应关系,确定所述第二api网关的地址,并根据所述第二api网关的地址,将所述第一api请求发送给所述第二api网关;其中,所述第二api网关为所述第一api网关向所述第一目标安全域标识对应的api网关发送所述第一api请求的下一跳api网关。在一种可能的实现方式中,所述第一获取模块,具体包括:获取所述第一api请求携带的请求路径;根据所述请求路径和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述第一获取模块,具体包括:获取所述第一api请求携带的请求路径和第一参数,所述第一参数包括api调用方式和/或协议版本号;根据所述请求路径、所述第一参数和预设的特征值算法,确定所述第一api请求对应的特征值;根据所述特征值和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述第一获取模块,具体包括:获取所述第一api请求携带的请求路径、第二参数和第三参数,所述第二参数包括api调用方式和/或协议版本号,所述第三参数包括请求头和/或请求附加参数;根据所述请求路径、所述第二参数和预设的特征值算法,确定所述第一api请求对应的特征值;根据所述特征值、所述第三参数和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述装置还包括:第二接收模块,用于接收第二api请求;其中,所述第二api请求携带有第二转发标签,所述第二转发标签包含所述第一api网关的安全域标识和第一目标服务地址;删除模块,用于删除所述第二api请求中的第二转发标签;第二发送模块,用于将删除所述第二转发标签后的第二api请求发送给所述第一目标服务地址对应的服务器。在一种可能的实现方式中,所述装置还包括:第三接收模块,用于接收第三api请求;第二获取模块,用于获取所述第三api请求对应的第三转发标签,所述第三转发标签包含所述第一api网关的安全域标识和第二目标服务地址;第三发送模块,用于将所述第三api请求发送给所述第二目标服务地址对应的服务器。第三方面,提供了一种应用程序编程接口api网关,所述api网关包括存储器、处理器和通信接口,其中:所述存储器,用于存储程序指令;所述处理器,用于根据所述存储器中存储的程序指令执行以下操作:通过所述通信接口接收第一api请求;获取所述第一api请求对应的第一转发标签,所述第一转发标签包含第一目标安全域标识;其中,所述第一api网关的安全域标识与所述第一目标安全域标识不同;根据所述第一目标安全域标识和第二api网关的地址的对应关系,确定所述第二api网关的地址,并根据所述第二api网关的地址,通过所述通信接口将所述第一api请求发送给所述第二api网关;其中,所述第二api网关为所述第一api网关向所述第一目标安全域标识对应的api网关发送所述第一api请求的下一跳api网关。在一种可能的实现方式中,所述处理器执行获取所述第一api请求对应的第一转发标签的操作,包括:获取所述第一api请求携带的请求路径;根据所述请求路径和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述处理器执行获取所述第一api请求对应的第一转发标签的操作,包括:获取所述第一api请求携带的请求路径和第一参数,所述第一参数包括api调用方式和/或协议版本号;根据所述请求路径、所述第一参数和预设的特征值算法,确定所述第一api请求对应的特征值;根据所述特征值和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述处理器执行获取所述第一api请求对应的第一转发标签的操作,包括:获取所述第一api请求携带的请求路径、第二参数和第三参数,所述第二参数包括api调用方式和/或协议版本号,所述第三参数包括请求头和/或请求附加参数;根据所述请求路径、所述第二参数和预设的特征值算法,确定所述第一api请求对应的特征值;根据所述特征值、所述第三参数和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述处理器,还用于根据所述存储器中存储的程序指令执行以下操作:通过所述通信接口接收第二api请求;其中,所述第二api请求携带有第二转发标签,所述第二转发标签包含所述第一api网关的安全域标识和第一目标服务地址;删除所述第二api请求中的第二转发标签;通过所述通信接口将删除所述第二转发标签后的第二api请求发送给所述第一目标服务地址对应的服务器。在一种可能的实现方式中,所述处理器还用于根据所述存储器中存储的程序指令执行以下操作:通过所述通信接口接收第三api请求;获取所述第三api请求对应的第三转发标签,所述第三转发标签包含所述第一api网关的安全域标识和第二目标服务地址;通过所述通信接口将所述第三api请求发送给所述第二目标服务地址对应的服务器。第四方面,提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行如第一方面所述的方法。在本发明的实施例中,第一api网关接收第一api请求,可以根据第一转发标签中的第一目标安全域标识进行第一api请求转发。由于安全域标识的数量远少于请求地址的数量,减少了请求地址与服务地址的对应关系表的查询数量,从而提高api请求的效率。附图说明图1为本发明实施例提供的网络系统的示例图;图2为本发明实施例提供的一种传输api请求的方法的流程图;图3为本发明实施例提供的一种传输api请求的示例的流程图;图4为本发明实施例提供的一种传输api请求的装置的结构示意;图5为本发明实施例提供的一种传输api请求的装置的结构示意;图6为本发明实施例提供的一种传输api请求的装置的结构示意;图7为本发明实施例提供的一种api网关的结构示意图。具体实施方式本发明实施例提供了一种传输api请求的方法,该方法可以应用于跨安全域传输api请求的场景,如图1所示,为本发明实施例提供的网络系统的示例图,在该网络系统中包括三个安全域,分别为安全域a、安全域b和安全域c,其中,安全域a中设置有api网关a,安全域b中设置有api网关b,安全域c中设置有api网关c,每个安全域中可以设置有多个服务器。当客户端需要访问安全域c中的服务器1时,安全域a中接入的客户端可以向api网关a发送api请求,api网关a通过api网关b将api请求发送至api网关c,api网关c接收到api请求后,再将该api请求转发给服务器1进行处理。本发明实施例中,安全域可以指安全等级,不同服务有不同的安全等级,则不同的服务位于对应的安全域。本发明实施例提供了一种传输api请求的方法,可以提高api请求的效率,具体处理流程如下:步骤201,第一api网关接收第一api请求。在实施中,第一api网关可以接收第一api请求,该第一api请求可以是客户端发送的api请求,也可以是其他api网关转发的api请求。例如,当客户端需要访问服务器时,可以向该客户端所属安全域的第一api网关发送第一api请求。又如,某一api网关接收到客户端发送的第一api请求后,如果该第一api请求对应的服务器不在该api网关所属的安全域中,则该api网关可以根据预先存储的策略将该第一api请求转发给第一api网关。第一api请求中可以携带有请求路径,还可以携带有api调用方式、协议版本号、请求头和请求附加参数等信息中的一种或多种。该第一api请求对应的服务器不在该第一api网关所属的安全域中也可以称为该第一api请求对应的服务器没有设置在第一api网关所属的安全域中,或该第一api请求对应的服务器没有在第一api网关所属的安全域中。步骤202,第一api网关获取第一api请求对应的第一转发标签。其中,第一转发标签可以包含第一目标安全域标识;第一api网关的安全域标识与第一目标安全域标识不同。目标安全域标识可以是该客户端需要访问的目标服务器所属的安全域的标识。在实施中,当第一api网关接收到第一api请求后,对该第一api请求进行解析,然后判断该第一api请求中是否携带有第一转发标签,进而根据判断结果获取该第一api请求对应的第一转发标签。具体有以下两种情况:第一种情况,如果第一api请求中携带有第一转发标签,则获取该第一api请求中携带的第一转发标签。在实施中,当第一api网关接收到其他api网关转发的第一api请求时,该第一api请求中携带有其他api网关添加的第一转发标签。该第一api网关可以对该第一api请求进行解析,得到该第一api请求中携带的第一转发标签。第二种情况,如果第一api请求中未携带有第一转发标签,则根据第一api请求和预先存储的第一转发标签的映射表,确定该第一api请求对应的第一转发标签。在实施中,第一api网关中预先存储有第一转发标签的映射表,该第一转发标签的映射表可以由管理员根据实际业务进行设置。当第一api网关接收到客户端发送的第一api请求时,该第一api请求中未携带有第一转发标签,该第一api网关则可以根据该第一api请求和预先存储的第一转发标签的映射表,确定该第一api请求对应的第一转发标签。确定第一api请求对应的第一转发标签的方式可以是多种多样的,本实施例提供了几种可行的处理方式。第一种方式,第一api网关可以根据请求路径确定第一api请求对应的第一转发标签,具体处理过程如下:步骤一,获取第一api请求携带的请求路径。在实施中,第一api网关在接收到第一api请求后,可以对该第一api请求进行解析,获取该第一api请求中携带的请求路径。其中,该请求路径为该第一api请求中携带的统一资源定位符(uniformresourcelocator,url)中的路径部分。例如,超文本传输协议(hypertexttransferprotocol,http)中的url为http://192.168.1.1/test,则请求路径为/test。步骤二,根据请求路径和第一转发标签的映射表,确定第一转发标签。其中,第一转发标签的映射表中包括请求路径和第一转发标签的对应关系。在实施中,第一api网关中可以预先存储有第一转发标签的映射表,该第一转发标签的映射表可以由管理员根据实际业务进行设置。该第一转发标签的映射表中包括请求路径和第一转发标签的对应关系。如表一所示,为第一转发标签的映射表的示例,其中,请求路径为/test,其对应的第一转发标签中的第一目标安全域标识为a。表一第一api网关得到该第一api请求中携带的请求路径后,可以在第一转发标签的映射表中查询包含该请求路径的表项,进而获取该表项中的第一转发标签,得到该请求路径对应的第一转发标签。第二种方式,第一api网关可以根据特征值确定第一api请求对应的第一转发标签,具体处理过程如下:步骤一,获取第一api请求携带的请求路径和第一参数。其中,所述第一参数包括api调用方式和/或协议版本号。在实施中,第一api网关在接收到第一api请求后,可以对该第一api请求进行解析,获取该第一api请求中携带的请求路径和第一参数,该第一参数可以包括api调用方式和/或协议版本号。以http协议为例,api调用方法为http协议中的调用方法,比如get、post、put、delete、head、connect、options、trace等调用方法;协议版本号为http的协议版本号,例如,http1.0版本或http1.1版本。步骤二,根据请求路径、第一参数和预设的特征值算法,确定第一api请求对应的特征值。在实施中,第一api网关中可以预先存储有特征值算法,该特征值算法可以由管理员进行设置,例如,该特征值算法可以为哈希算法,或者,也可以为其他特征值算法,本发明不进行限定。第一api网关获取到该第一api请求中携带的请求路径和第一参数后,可以根据预先存储的特征值算法、请求路径和第一参数计算特征值。例如,第一api网关可以根据预先存储的哈希算法、请求路径和第一参数计算哈希值。步骤三,根据特征值和第一转发标签的映射表,确定第一转发标签。其中,第一转发标签的映射表中包括特征值和第一转发标签的对应关系。在实施中,第一api网关中预先存储有第一转发标签的映射表,该第一转发标签的映射表可以由管理员进行设置。该第一转发标签的映射表中包括特征值和第一转发标签的对应关系。如表二所示,为第一转发标签的映射表的示例,其中,特征值为0xa26067f3,其对应的第一转发标签中的第一目标安全域标识为a。表二特征值第一目标安全域标识0xa26067f3a第一api网关确定该第一api请求对应的特征值后,可以在第一转发标签的映射表中查询包含该特征值的表项,进而获取该表项中的第一转发标签,从而得到该特征值对应的第一转发标签。第三种方式,第一api网关可以根据特征值和第三参数确定第一api请求对应的第一转发标签,具体处理过程如下:步骤一,获取第一api请求携带的请求路径、第二参数和第三参数。其中,第二参数可以包括api调用方式和/或协议版本号,第三参数可以包括请求头和/或请求附加参数,该请求头和请求附加参数可以采用键-值的存储方式进行存储。在实施中,第一api网关在接收到第一api请求后,可以对该第一api请求进行解析,得到该第一api请求中携带的请求路径、第二参数和第三参数。需要说明的是,本方式中的第二参数可以与第二种方式中的第一参数相同,也可以不同。步骤二,根据请求路径、第二参数和预设的特征值算法,确定第一api请求对应的特征值。在实施中,第一api网关中可以预先存储有特征值算法,该特征值算法可以由管理员进行设置,其中该特征值算法可以选择哈希算法,也可以选择其他特征值算法,本发明不进行限定。第一api网关获取到该第一api请求中携带的请求路径和第二参数后,可以根据预先存储的特征值算法、请求路径和第二参数计算特征值。例如,第一api网关可以根据预先存储的哈希算法、请求路径和第二参数计算哈希值。步骤三,根据特征值、第三参数和第一转发标签的映射表,确定第一转发标签。其中,第一转发标签的映射表中包括特征值、第三参数和第一转发标签的三者对应关系。在实施中,第一api网关中预先存储有第一转发标签的映射表,该第一转发标签的映射表可以由管理员根据实际业务进行设置。其中,第一转发标签的映射表中包括特征值、第三参数和第一转发标签的三者对应关系。如表三所示,为第一转发标签的映射表的示例,其中,特征值为0xa26067f3,请求头为qq.com,请求附加参数为1,其对应的第一转发标签中的第一目标安全域标识为a。表三特征值请求头请求附加参数第一目标安全域标识0xa26067f3qq.com1a第一api网关确定该第一api请求对应的特征值后,可以根据该特征值和该第三参数在该第一转发标签的映射表中进行查询,得到该特征值和该第三参数对应的第一转发标签。另外,第一api网关还可以采用其他方式确定第一api请求对应的第一转发标签。例如:第一api网关可以获取第一api请求中携带的请求路径和第三参数,然后根据预先存储的特征值算法、请求路径和第三参数计算特征值,进而根据特征值和预先存储的第一转发标签的映射表,确定第一api请求对应的第一转发标签。其中,第一转发标签的映射表中包括特征值和第一转发标签的对应关系。又如:第一api网关可以获取第一api请求中携带的请求路径、第二和第三参数,然后根据预先存储的特征值算法、请求路径、第二参数和第三参数计算特征值,进而根据特征值和预先存储的第一转发标签的映射表,确定第一api请求对应的第一转发标签。其中,第一转发标签的映射表中包括特征值和第一转发标签的对应关系。步骤203,第一api网关根据第一目标安全域标识和第二api网关的地址的对应关系,确定第二api网关的地址,并根据第二api网关的地址,将第一api请求发送给第二api网关。其中,第二api网关为第一api网关向第一目标安全域标识对应的api网关发送第一api请求的下一跳api网关。在本发明的实施例中,第一api网关可以根据第一转发标签中的第一目标安全域标识进行第一api请求转发。由于安全域标识的数量远少于请求地址的数量,减少了请求地址与服务地址的对应关系表的查询数量,从而提高api请求的效率。在实施中,第一api网关中可以预先存储有第一目标安全域标识和第二api网关的地址的对应关系,该对应关系可以由管理员进行设置。该对应关系可以如表四所示:表四第一目标安全域标识第二api网关地址a192.168.1.1第一api网关可以在第一目标安全域标识和第二api网关的地址的对应关系中,查询第一目标安全域对应的第二api网关的地址。其中,该第二api网关的地址可以是互联网协议(internetprotocol,ip)地址,也可以其他用于标识该第二api网关的地址,本发明不作限定。第一api网关在确定第二api网关的地址后,可以根据第二api网关的地址,将第一api请求转发给该第二api网关。可选的,第一api网关接收到第二api请求后,可以先将该第二api请求中的转发标签删除,然后再进行转发给服务器。具体处理过程如下:步骤一,第一api网关接收第二api请求。其中,第二api请求携带有第二转发标签,第二转发标签包含第一api网关的安全域标识和第一目标服务地址。在实施中,当第一api网关接收到其他api网关转发的第二api请求时,该第二api请求中携带有其他api网关添加的第二转发标签。该第一api网关可以对该第二api请求进行解析,得到该第二api请求中携带的第二转发标签。步骤二,所述第一api网关删除所述第二api请求中的第二转发标签。在实施中,第一api网关中可以预先存储有第一api网关所属的安全域的安全域标识。第一api网关在确定第二api请求对应的第二转发标签后,可以判断该第二转发标签中携带的第一api网关的安全域标识与本地预先存储的安全域标识是否相同,如果相同,则执行步骤三。步骤三,第一api网关将删除第二转发标签后的第二api请求发送给第一目标服务地址对应的服务器。在实施中,如果该第一api网关判定第二转发标签中携带的第一api网关的安全域标识与本地预先存储的安全域标识相同,则说明该第二api请求对应的服务器位于该第一api网关的安全域中。第二api请求对应的服务器位于该第一api网关的安全域中也可以称为第二api请求对应的服务器属于第一api网关所属的安全域中,或者第二api请求对应的服务器设置在第一api网关所属的安全域中。第一api网关可以在第二api请求中确定该第二转发标签对应的位置,然后删除该第二转发标签,最后,将删除第二转发标签后的第二api请求转发给第一目标服务地址对应的服务器,以使该服务器对该第二api请求进行处理这样。这样,可以减少api请求中的冗余信息。可选的,第一api网关接收到第三api请求后,如果该第三api请求对应的服务器在第一api网关的安全域中,则第一api网关将第三api请求直接转发给服务器,具体处理过程如下:步骤一,第一api网关接收第三api请求。步骤二,第一api网关获取第三api请求对应的第三转发标签。其中,所述第三转发标签包含所述第一api网关的安全域标识和第二目标服务地址。在实施中,第一api网关中预先存储有第三转发标签的映射表,该第三转发标签的映射表可以由管理员根据实际业务进行设置。当第一api网关接收到客户端发送的第三api请求时,该第三api请求中未携带有第三转发标签,该第一api网关则可以根据该第三api请求和预先存储的第三转发标签的映射表,确定该第三api请求对应的第三转发标签。具体处理过程可参考步骤202,此处不再赘述。步骤三,第一api网关将第三api请求发送给第二目标服务地址对应的服务器。在实施中,第一api网关中可以预先存储有第一api网关所属的安全域的安全域标识。第一api网关在确定第三api请求对应的第三转发标签后,可以判断该第三转发标签中携带的第一api网关的安全域标识与本地预先存储的安全域标识是否相同。如果该第一api网关判定第三转发标签中携带的第一api网关的安全域标识与本地预先存储的安全域标识相同,则说明该第三api请求对应的服务器位于该第一api网关的安全域中。第一api网关可以将第三api请求转发给第二目标服务地址对应的服务器,以使该服务器对该第三api请求进行处理这样。需要说明的是,对于第一api网关接收到客户端发送的第一api请求的情况,由于该第一api请求中未携带第一转发标签,因此,该第一api网关需要先在第一api请求中添加该第一转发标签,然后再将该第一api请求转发给该第二api网关,具体处理过程如下:将第一转发标签添加到第一api请求中,将添加第一转发标签后的第一api请求发送给第一目标安全域标识对应的第二api网关。在实施中,第一api网关可以在第一api请求中的预设位置处添加该第一转发标签,并将添加第一转发标签后的第一api请求转发给第一目标安全域标识对应的第二api网关。这样,第二api网关可以根据第一转发标签进行对应的处理。需要说明的是,在本方案中,网络系统中还包括与各安全域中的api网关相连的管理服务器,管理员可以在管理服务器中预先配置转发标签映射表。各安全域中的api网关可以向该管理服务器获取转发标签映射表。这样,可以有效降低管理员配置转发标签映射表的工作量。此外,第一转发标签的映射表中还可以包括各表项的更新时长,针对每个表项,当第一api网关生成该表项时,可以为该表项的更新时长赋值,并启动该表项对应的计时器,当计时器记录的时长达到该更新时长时,第一api网关可以对该表项进行更新。如表五所示,该表项的更新时长为3000s,当计时器记录的时长等于更新时长时,第一api网关可以根据请求路径向管理服务器查询该请求路径对应的安全域标识和服务地址,如果管理服务器中存储的安全域标识和服务地址与第一api网关中存储的安全域标识和服务地址相同,则对计时器重新置0;如果不相同,则更新第一api网关中存储的安全域标识和服务地址,并对计时器重新置0;如果管理服务器中未存储的该请求路径,则删除该表项。表五请求路径安全域标识服务地址更新时长/testa/s1/request3000s本发明还提供了一种传输api请求的示例,如图3所示,该示例具体包括如下步骤:步骤301,第一api网关接收api请求。步骤302,第一api网关判断api请求是否携带有转发标签,如果携带,则执行步骤304至步骤305,否则,执行步骤303和步骤305。步骤303,第一api网关根据api请求和预先存储的转发标签的映射表,确定api请求对应的转发标签,执行步骤305。步骤304,第一api网关获取api请求中携带的转发标签。步骤305,第一api网关判断目标安全域标识与第一api网关的安全域标识是否相同,如果相同,则执行步骤306,否则,执行步骤307至步骤308。步骤306,第一api网关删除api请求中携带的转发标签,将删除转发标签后的api请求转发给目标服务地址对应的服务器。步骤307,第一api网关根据预先存储的目标安全域标识和第二api网关的地址的对应关系,确定目标安全域标识对应的下第二api网关的地址。步骤308,第一api网关将转发标签添加到api请求中,将添加转发标签后的api请求发送给目标安全域标识对应的第二api网关。步骤301至步骤308的具体处理过程可参考步骤201至步骤203,本发明不再赘述。在本发明的实施例中,第一api网关可以根据第一转发标签中的第一目标安全域标识进行第一api请求转发。由于安全域标识的数量远少于请求地址的数量,减少了请求地址与服务地址的对应关系表的查询数量,从而提高api请求的效率。基于相同的技术构思,本发明实施例还提供了一种传输应用程序编程接口api请求的装置,该装置应用于第一api网关,如图4所示,该装置包括:第一接收模块410,用于接收第一api请求;第一获取模块420,用于获取第一api请求对应的第一转发标签,第一转发标签包含第一目标安全域标识;其中,第一api网关的安全域标识与第一目标安全域标识不同;第一发送模块430,用于根据第一目标安全域标识和第二api网关的地址的对应关系,确定第二api网关的地址,并根据第二api网关的地址,将第一api请求发送给第二api网关;其中,第二api网关为第一api网关向第一目标安全域标识对应的api网关发送第一api请求的下一跳api网关。在一种可能的实现方式中,第一获取模块420,具体包括:获取第一api请求携带的请求路径;根据请求路径和第一转发标签的映射表,确定第一转发标签。在一种可能的实现方式中,第一获取模块420,具体包括:获取第一api请求携带的请求路径和第一参数,第一参数包括api调用方式和/或协议版本号;根据请求路径、第一参数和预设的特征值算法,确定第一api请求对应的特征值;根据特征值和第一转发标签的映射表,确定第一转发标签。在一种可能的实现方式中,第一获取模块420,具体包括:获取第一api请求携带的请求路径、第二参数和第三参数,第二参数包括api调用方式和/或协议版本号,第三参数包括请求头和/或请求附加参数;根据请求路径、第二参数和预设的特征值算法,确定第一api请求对应的特征值;根据特征值、第三参数和第一转发标签的映射表,确定第一转发标签。在一种可能的实现方式中,如图5所示,该装置还包括:第二接收模块440,用于接收第二api请求;其中,第二api请求携带有第二转发标签,第二转发标签包含第一api网关的安全域标识和第一目标服务地址;删除模块450,用于删除第二api请求中的第二转发标签;第二发送模块460,用于将删除第二转发标签后的第二api请求发送给第一目标服务地址对应的服务器。在一种可能的实现方式中,如图6所示,该装置还包括:第三接收模块470,用于接收第三api请求;第二获取模块480,用于获取第三api请求对应的第三转发标签,第三转发标签包含第一api网关的安全域标识和第二目标服务地址;第三发送模块490,用于将第三api请求发送给第二目标服务地址对应的服务器。在本发明的实施例中,第一api网关通过第一接收模块410接收到客户端发送的第一api请求后,通过第一获取模块420可以根据第一转发标签的映射表,确定该第一api请求对应的第一转发标签,该第一转发标签包括第一目标安全域标识。然后通过第一发送模块430根据第一目标安全域标识和第二api网关的地址的对应关系,确定第二api网关的地址,并将第一api请求发送第二api网关,后续第二api网关可以直接根据第一转发标签进行处理,无需再次查询第一转发标签映射表,从而提高api请求的效率。基于相同的技术构思,本发明实施例还提供了一种应用程序编程接口api网关,如图7所示,所述api网关包括存储器710、处理器720和通信接口730,其中:所述存储器710,用于存储程序指令;所述处理器720,用于根据所述存储器710中存储的程序指令执行以下操作:通过所述通信接口730接收第一api请求;获取所述第一api请求对应的第一转发标签,所述第一转发标签包含第一目标安全域标识;其中,所述第一api网关的安全域标识与所述第一目标安全域标识不同;根据所述第一目标安全域标识和第二api网关的地址的对应关系,确定所述第二api网关的地址,并根据所述第二api网关的地址,通过所述通信接口730将所述第一api请求发送给所述第二api网关;其中,所述第二api网关为所述第一api网关向所述第一目标安全域标识对应的api网关发送所述第一api请求的下一跳api网关。在一种可能的实现方式中,所述处理器720执行获取所述第一api请求对应的第一转发标签的操作,包括:获取所述第一api请求携带的请求路径;根据所述请求路径和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述处理器720执行获取所述第一api请求对应的第一转发标签的操作,包括:获取所述第一api请求携带的请求路径和第一参数,所述第一参数包括api调用方式和/或协议版本号;根据所述请求路径、所述第一参数和预设的特征值算法,确定所述第一api请求对应的特征值;根据所述特征值和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述处理器720执行获取所述第一api请求对应的第一转发标签的操作,包括:获取所述第一api请求携带的请求路径、第二参数和第三参数,所述第二参数包括api调用方式和/或协议版本号,所述第三参数包括请求头和/或请求附加参数;根据所述请求路径、所述第二参数和预设的特征值算法,确定所述第一api请求对应的特征值;根据所述特征值、所述第三参数和所述第一转发标签的映射表,确定所述第一转发标签。在一种可能的实现方式中,所述处理器720,还用于根据所述存储器710中存储的程序指令执行以下操作:通过所述通信接口730接收第二api请求;其中,所述第二api请求携带有第二转发标签,所述第二转发标签包含所述第一api网关的安全域标识和第一目标服务地址;删除所述第二api请求中的第二转发标签;通过所述通信接口730将删除所述第二转发标签后的第二api请求发送给所述第一目标服务地址对应的服务器。在一种可能的实现方式中,所述处理器720还用于根据所述存储器710中存储的程序指令执行以下操作:通过所述通信接口730接收第三api请求;获取所述第三api请求对应的第三转发标签,所述第三转发标签包含所述第一api网关的安全域标识和第二目标服务地址;通过所述通信接口730将所述第三api请求发送给所述第二目标服务地址对应的服务器。本发明实施例图4、图5和图6所提供的传输应用程序编程接口api请求的装置可以由图7所示的api网关实现,具体的,图、图5和图6中的装置的各模块可以由图7所示的api网关存储器710、处理器720和接口730组合实现,也可以由存储器710、处理器720和接口730部分实现,其他部分由专用硬件实现。在另一种实现方式中,例图4、图5和图6所提供的传输应用程序编程接口api请求的装置也可以由专用硬件设备实现。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1