一种应用程序接口的分配方法、路由中间件及业务系统与流程

文档序号:11778546阅读:289来源:国知局
一种应用程序接口的分配方法、路由中间件及业务系统与流程

本发明涉及计算机技术领域,特别涉及一种应用程序接口的分配方法、路由中间件及业务系统。



背景技术:

随着计算机应用技术的不断发展,智能终端也得到大量普及。智能终端可安装不同服务端所分别对应的客户端。针对于每一个服务端,该服务端可以为对应的客户端分配相应的应用程序接口,使得客户端可通过分配的应用程序接口调用该服务端所提供的服务;同时,为了满足用户不断增加的用户需求,经常需要在较低版本的应用程序接口的基础上开发较高版本的应用程序接口。

目前,在较高版本的应用程序接口发布之后,通常将较高版本的应用程序接口直接分配给当前服务端所对应的各个客户端,使得各个客户端可根据分配的较高版本的应用程序接口调用服务端提供的服务。

但是,当智能终端的硬件性能较低时,智能终端可能并不支持分配的较高版本的应用程序接口,使得客户端并不能通过分配的应用程序接口调用服务端提供的服务。



技术实现要素:

本发明实施例提供了一种应用程序接口的分配方法、路由中间件及业务系统,可确保客户端能够根据分配的应用程序接口调用服务端提供的服务。

第一方面,本发明提供了一种应用程序接口的分配方法,应用于路由中间件,包括:

接收客户端发送的http(hypertexttransferprotocol,超文本传输协议)请求;

解析所述http请求以获取所述http请求携带的当前版本参数;

根据所述当前版本参数,从外部服务器存储的至少两个应用程序接口中读取对应所述当前版本参数的目标应用程序接口,并将读取的所述目标应用程序接口分配给所述客户端。

优选地,

所述解析所述http请求以获取当前版本参数,包括:

解析所述http请求以获取所述http请求携带的uri(uniformresourceidentifier,统一资源标识符)及http头部信息;

检测所述uri中是否携带第一版本参数,如果是,则执行a1;否则,执行a2;

a1:将所述第一版本参数确定为当前版本参数;

a2:检测所述http头部信息中是否携带第二版本参数,如果是,则执a3;否则,执行a4;

a3:将所述第二版本参数确定为当前版本参数;

a4:将预设版本参数确定为当前版本参数。

优选地,

所述检测所述http头部信息中是否携带第二版本参数,包括:检测所述http头部信息的api-version消息部和contenttype消息部中是否携带第二版本参数。

优选地,

所述根据所述当前版本参数,从外部服务器存储的至少两个应用程序接口中读取对应所述当前版本参数的目标应用程序接口,包括:

根据预设路径组织规则,利用所述当前版本参数构建对应的存储路径;

根据所述存储路径,从外部服务器存储的至少两个应用程序接口中读取对应所述当前版本参数的目标应用程序接口。

第二方面,本发明实施例提供了一种路由中间件,包括:

信息接收模块,用于接收客户端发送的http请求;

解析模块,用于解析所述http请求以获取当前版本参数;

接口分配模块,用于根据所述当前版本参数,从外部服务器存储的至少两个应用程序接口中读取对应所述当前版本参数的目标应用程序接口,并将读取的所述目标应用程序接口分配给所述客户端。

优选地,

所述解析模块,包括:解析单元、第一检测单元、第一确定单元、第二检测单元、第二确定单元和第三确定单元;其中,

所述解析单元,用于解析所述http请求以获取所述http请求携带的uri及http头部信息;

所述第一检测单元,用于检测所述检测所述uri中是否携带第一版本参数,如果是,则触发所述第一确定单元;否则,触发所述第二检测单元;

所述第一确定单元,用于在所述第一检测单元的触发下,将所述第一版本参数确定为当前版本参数;

所述第二检测单元,用于在所述第一检测单元的触发下,检测所述http头部信息中是否携带第二版本参数,如果是,则触发所述第二确定单元;否则,触发所述第三确定单元;

所述第二确定单元,用于在所述第二检测单元的触发下,将所述第二版本参数确定为当前版本参数;

所述第三确定单元,用于在所述第二检测单元的触发下,将预设版本参数确定为当前版本参数。

优选地,

所述第二检测单元,用于在所述第一检测单元的触发下,检测所述http头部信息的api-version消息部和contenttype消息部中是否携带第二版本参数。

优选地,

所述接口分配模块,包括:路径确定单元和接口读取单元;其中,

所述路径确定单元,用于根据预设路径组织规则,利用所述当前版本参数构建对应的存储路径;

所述接口读取单元,用于根据所述存储路径,从外部服务器存储的至少两个应用程序接口中读取对应所述当前版本参数的目标应用程序接口。

第三方面,本发明实施例提供了一种业务系统,包括:

服务端、至少一个客户端,以及第二方面中任一所述的路由中间件;其中,所述服务端以及各个所述客户端均与所述路由中间件相连;

所述客户端,用于向所述路由中间件发送http请求;

所述服务端,用于存储至少两个应用程序接口,每一个所述应用程序接口分别对应一个版本参数。

本发明实施例提供了一种应用程序接口的分配方法、路由中间件及业务系统,该方法中,通过在客户端和服务端之间增加路由中间件,用户可结合安装客户端的智能终端的硬件性能,确定出智能终端最高能够支持哪一个版本的应用程序接口,并确定该版本的应用程序接口所对应的当前版本参数,进而通过客户端发出携带当前版本参数的http请求,路由中间件则可截获客户端发出的http请求,并解析出http请求所携带的当前版本参数,后续则可从外部服务器存储的至少两个应用程序接口中读取对应当前版本参数的目标应用程序接口,并将读取的目标应用程序接口分配给客户端。综上可见,通过设置路由中间件的形式,根据用户通过客户端发送的http请求中携带的当前版本参数向客户端分配相应版本的应用程序接口,不再将最高版本的应用程序接口直接分配给客户端,防止安装客户端的智能终端不支持分配的应用程序接口,确保客户端能够通过分配的应用程序接口调用服务端提供的服务。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种应用程序接口的分配方法的流程图;

图2是本发明一实施例提供的另一种应用程序接口的分配方法的流程图;

图3是本发明一实施例提供的一种路由中间件的结构示意图;

图4是本发明一实施例提供的另一种路由中间件的结构示意图;

图5是本发明一实施例提供的一种业务系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种应用程序的分配方法,应用于路由中间件,包括:

步骤101,接收客户端发送的http请求;

步骤102,解析所述http请求以获取所述http请求携带的当前版本参数;

步骤103,根据所述当前版本参数,从外部服务器存储的至少两个应用程序接口中读取对应所述当前版本参数的目标应用程序接口,并将读取的所述目标应用程序接口分配给所述客户端。

本发明上述实施例中,通过在客户端和服务端之间增加路由中间件,用户可结合安装客户端的智能终端的硬件性能,确定出智能终端最高能够支持哪一个版本的应用程序接口,并确定该版本的应用程序接口所对应的当前版本参数,进而通过客户端发出携带当前版本参数的http请求,路由中间件则可截获客户端发出的http请求,并解析出http请求所携带的当前版本参数,后续则可从外部服务器存储的至少两个应用程序接口中读取对应当前版本参数的目标应用程序接口,并将读取的目标应用程序接口分配给客户端。综上可见,通过设置路由中间件的形式,根据用户通过客户端发送的http请求中携带的当前版本参数向客户端分配相应版本的应用程序接口,不再将最高版本的应用程序接口直接分配给客户端,防止安装客户端的智能终端不支持分配的应用程序接口,确保客户端能够通过分配的应用程序接口调用服务端提供的服务。

具体地,由于多个版本的应用程序接口分别存储在服务端,各个应用接口程序的名称可携带其对应的版本参数,因此,所述步骤103中,所述根据所述当前版本参数,从外部服务器存储的至少两个应用程序接口中读取对应所述当前版本参数的目标应用程序接口,具体可以通过如下两种方式来实现:

方式a:向服务端发送携带当前版本参数的接口读取请求,使得服务端根据接口读取请求中携带的当前版本参数,查询存储的各个应用程序接口的名称,以确定出对应名称中携带当前版本参数的目标应用程序接口,并将确定的目标应用程序接口提供给路由中间件。

方式b:根据预设路径组织规则,利用当前版本参数构建对应的存储路径;根据存储路径,从外部服务器存储的至少两个应用程序接口中读取对应当前版本参数的目标应用程序接口。

针对于上述方式b,服务端通常可以将多个多个不同版本的应用程序接口存储在相同的存储空间,即各个应用程序接口所分别对应的存储路径具有一定的相似性,且各个应用程序接口的存储路径通常也包括该应用程序接口所对应的版本参数,即不同的应用程序接口所分别对应的存储路径具有一定的路径组织规则。因此,通过确定出该路径组织规则,并将确定的路径组织规则设置在路由中间件中,路由中间件在获取到当前版本参数之后,则可根据设置的路径组织规则及当前版本参数,构建出相应的存储路径,进而根据构建的存储路径从外部服务器中读取对应的目标应用程序接口。

本发明一个实施例中,所述解析所述http请求以获取当前版本参数,包括:

解析所述http请求以获取所述http请求携带的uri及http头部信息;

检测所述检测所述uri中是否携带第一版本参数,如果是,则执行a1;否则,执行a2;

a1:将所述第一版本参数确定为当前版本参数;

a2:检测所述http头部信息中是否携带第二版本参数,如果是,则执a3;否则,执行a4;

a3:将所述第二版本参数确定为当前版本参数;

a4:将预设版本参数确定为当前版本参数。

本发明上述实施例中,由于http请求通常可以包括一个http头部信息和一个uri,而http头部信息和uri均可由用户通过客户端进行自定义,即用户可以将当前版本参数置入http头部信息或uri中,因此,路由中间件对http请求进行解析时,可通过对http头部信息和uri进行检测以获取http请求中携带的当前版本参数。

本发明上述实施例中,通过将一个较低版本的应用程序接口所对应的版本参数作为预设版本参数,当用户无法结合智能终端的硬件性能确定出智能终端能够支持哪一个版本的应用程序接口时,则可发出未携带相应版本参数的http请求,此时,路由中间件在检测到http请求未携带相应的版本参数之后,则可将预设版本参数确定为当前版本参数,进而将对应该预设版本参数的一个较低版本的应用程序接口分配给客户端,确保智能终端可支持分配的应用程序接口,从而使得安装于该智能终端的客户端能够通过分配的较低版本的应用程序接口调用服务端提供的服务。

具体地,本发明一个实施例中,所述检测所述http头部信息中是否携带第二版本参数,包括:检测所述http头部信息的api-version消息部和contenttype消息部中是否携带第二版本参数。由于http头部信息包括有api-version消息部和contenttype消息部,且api-version消息部和contenttype消息部均可由用户结合实际业务需求进行自定义,因此,在检测http头部信息是否携带第二版本参数时,可具体检测api-version消息部和contenttype消息部是否携带版本参数。

为了更加清楚的说明本发明的技术方案及优点,下面以服务端存储有4个版本的应用程序接口,按照版本高低顺序,4个版本的应用程序接口分别对应的版本参数依次是:3.1、2.2、2.1、1.1,且按照版本高低顺序,4个版本的应用程序锁分别对应的名称依次是:a-3.1、a-2.2、a-2.1、a-1.1为例,如图2所示,具体可以通过如下各个步骤实现向客户端分配相应版本的应用程序接口:

步骤201,用户结合实际业务场景,确定安装客户端的智能终端的硬件性能最高可以支持哪一个版本的应用程序接口。

具体地,可以通过相应的测试软件测试出安装客户端的智能终端的硬件性能,并通过相应数量的样本分析以确定出具备相同硬件性能的智能终端在安装客户端之后,最高能够支持哪一个版本的应用程序接口。

本发明实施例以确定出智能终端最高能够支持对应版本参数是2.2的应用程序接口为例。

步骤202,用户通过客户端自定义http头部信息及uri,并形成包括该http头部信息和uri的http请求。

具体地,自定义http头部信息时,可具体对http头部信息的api-version消息部和contenttype消息部进行自定义。

举例来说,可针对api-version消息部进行自定义,使得api-version消息部中携带当前版本参数为2.2:

accept:application/json;version=2.2。

步骤203,预先在路由中间件中设置路径组织规则以及预设版本参数。

这里具体可以将预设版本参数设置为1.1或2.1。

步骤204,路由中间件接收客户端发送的http请求。

步骤205,路由中间件解析接收的http请求以获取http请求携带的uri及http头部信息。

步骤206,路由中间件检测uri中是否携带第一版本参数,如果是,则执行步骤207;否则,执行步骤208。

步骤207,路由中间件将所述第一版本参数确定为当前版本参数。

步骤208,路由中间件检测检测http头部信息的api-version消息部和contenttype消息部中是否携带第二版本参数,如果是,则执行步骤209;否则,执行步骤210。

本发明实施例中,可检测到api-version消息部携带第二版本参数2.2。

步骤209,路由中间件将第二版本参数确定为当前版本参数。

步骤206至步骤209中检测http请求中携带的当前版本参数时,还可以通过预先设置检测顺序的方式,根据设置的检测顺序对解析得到的uri及http、头部信息中的api-version消息部和contenttype消息部进行依次检测。

步骤210,路由中间件将预设版本参数确定为当前版本参数。

步骤211,路由中间件根据设置的路径组织规则,利用当前版本参数构建对应的存储路径。

举例来说,预设路径组织规则为controller/a-x/some,此时,则可利用当前版本参数2.2替换controller/a-x/some中的x以形成存储路径:controller/a-2.2/some。

步骤212,根据存储路径,从外部服务器存储的至少两个应用程序接口中读取对应当前版本参数的目标应用程序接口,并将读取的目标应用程序接口分配给客户端。

具体地,根据存储路径controller/a-2.2/some,可以读取服务端中存储的名称为a-2.2的目标应用程序接口。

通过本发明实施例的上述各个步骤,可实现根据客户端发送的http请求中携带的当前版本参数向客户端分配相应版本的应用程序接口,防止安装客户端的智能终端不支持分配的应用程序接口,确保客户端能够通过分配的应用程序接口调用服务端提供的服务

如图3所示,本发明实施例提供了一种路由中间件,包括:

信息接收模块301,用于接收客户端发送的http请求;

解析模块302,用于解析所述http请求以获取当前版本参数;

接口分配模块303,用于根据所述当前版本参数,从外部服务器存储的至少两个应用程序接口中读取对应所述当前版本参数的目标应用程序接口,并将读取的所述目标应用程序接口分配给所述客户端。

如图4所示,本发明一个实施例中,所述解析模块302,包括:解析单元3021、第一检测单元3022、第一确定单元3023、第二检测单元3024、第二确定单元3025和第三确定单元3026;其中,

所述解析单元3021,用于解析所述http请求以获取所述http请求携带的uri及http头部信息;

所述第一检测单元3022,用于检测所述检测所述uri中是否携带第一版本参数,如果是,则触发所述第一确定单元3023;否则,触发所述第二检测单元3024;

所述第一确定单元3023,用于在所述第一检测单元3022的触发下,将所述第一版本参数确定为当前版本参数;

所述第二检测单元3024,用于在所述第一检测单元3022的触发下,检测所述http头部信息中是否携带第二版本参数,如果是,则触发所述第二确定单元3025;否则,触发所述第三确定单元3026;

所述第二确定单元3025,用于在所述第二检测单元3024的触发下,将所述第二版本参数确定为当前版本参数;

所述第三确定单元3026,用于在所述第二检测单元3024的触发下,将预设版本参数确定为当前版本参数。

如图4所示,本发明一个实施例中,所述第二检测单元3024,用于在所述第一检测单元3022的触发下,检测所述http头部信息的api-version消息部和contenttype消息部中是否携带第二版本参数。

本发明一个实施例中,所述接口分配模块303,包括:路径确定单元(附图中未示出)和接口读取单元(附图中未示出);其中,

所述路径确定单元,用于根据预设路径组织规则,利用所述当前版本参数构建对应的存储路径;

所述接口读取单元,用于根据所述存储路径,从外部服务器存储的至少两个应用程序接口中读取对应所述当前版本参数的目标应用程序接口。

如图5所示,本发明实施例提供了一种业务系统,包括:

服务端501、至少一个客户端502,以及本发明任意一个实施例中提供的所述的路由中间件503;其中,所述服务端501以及各个所述客户端502均与所述路由中间件503相连;

所述客户端502,用于向所述路由中间件503发送http请求;

所述服务端501,用于存储至少两个应用程序接口,每一个所述应用程序接口分别对应一个版本参数。

本发明实施例中,各个客户端可分别安装在相应的智能终端(比如个人电脑或手机)中。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明任意一个实施例中提供的方法。

本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;

所述处理器和所述存储器通过所述总线连接;

所述存储器,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明任意一个实施例中提供的方法。

综上所述,本发明各个实施例至少具有如下有益效果:

1、本发明一实施例中,通过在客户端和服务端之间增加路由中间件,用户可结合安装客户端的智能终端的硬件性能,确定出智能终端最高能够支持哪一个版本的应用程序接口,并确定该版本的应用程序接口所对应的当前版本参数,进而通过客户端发出携带当前版本参数的http请求,路由中间件则可截获客户端发出的http请求,并解析出http请求所携带的当前版本参数,后续则可从外部服务器存储的至少两个应用程序接口中读取对应当前版本参数的目标应用程序接口,并将读取的目标应用程序接口分配给客户端。综上可见,通过设置路由中间件的形式,根据用户通过客户端发送的http请求中携带的当前版本参数向客户端分配相应版本的应用程序接口,不再将最高版本的应用程序接口直接分配给客户端,防止安装客户端的智能终端不支持分配的应用程序接口,确保客户端能够通过分配的应用程序接口调用服务端提供的服务。

2、本发明一实施例中,服务端可以将多个多个不同版本的应用程序接口存储在相同的存储空间,使得各个应用程序接口所分别对应的存储路径具有一定的相似性,且各个应用程序接口的存储路径也包括该应用程序接口所对应的版本参数,确保不同的应用程序接口所分别对应的存储路径具有一定的路径组织规则。通过在路由中间件中设置相应的路径组织规则,路由中间件在获取到当前版本参数之后,则可根据设置的路径组织规则及当前版本参数,构建出相应的存储路径,进而根据构建的存储路径从外部服务器中读取对应的目标应用程序接口。

3、本发明一实施例中,通过将一个较低版本的应用程序接口所对应的版本参数作为预设版本参数,当用户无法结合智能终端的硬件性能确定出智能终端能够支持哪一个版本的应用程序接口时,则可发出未携带相应版本参数的http请求,此时,路由中间件在检测到http请求未携带相应的版本参数之后,则可将预设版本参数确定为当前版本参数,进而将对应该预设版本参数的一个较低版本的应用程序接口分配给客户端,确保智能终端可支持分配的应用程序接口,从而使得安装于该智能终端的客户端能够通过分配的较低版本的应用程序接口调用服务端提供的服务。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1