接口转发方法、系统、计算机设备和存储介质与流程

文档序号:11292222阅读:496来源:国知局
接口转发方法、系统、计算机设备和存储介质与流程

本发明涉及计算机应用技术领域,特别是涉及一种接口转发方法、系统、计算机设备和存储介质。



背景技术:

随着信息技术的飞速发展,企业新业务层出不穷,各业务系统都具有面向单一业务的多种数据接口平台,因此业务系统的接口也不断增加,然而传统点对点接口方式已经不能满足业务系统实时可靠与其他平台对接的需求。另外,接口太多,也不利于对接口性能监控,因此在实际应用过程中,开发了统一接口平台。统一接口平台,是一个架构模型,是为完成两个或多个应用系统按照某种协议(数据协议、通信协议、网络互联协议)将原系统中的不同功能单元(即服务)通过协议要求组织和联系起来的框架,方便各业务系统之间的资源共享。

传统的统一接口平台,一般只接入管理支持http协议的接口(即http接口),利用http协议转发方式来对http接口进行转发。而现在的大部分接口都支持其他网络协议(例如https协议、ip协议、tcp协议等),现有的接口转发方式不能支持其他网络协议的接口转发,并且转发方式不够灵活丰富。



技术实现要素:

基于此,有必要针对现有的接口转发方式不能支持其他网络协议的接口转发的问题,提供一种接口转发方法、系统、计算机设备和存储介质。

一种接口转发方法,包括以下步骤:

获取接口请求信息,根据所述接口请求信息获得接口访问参数,其中所述接口访问参数包括转发接口的编码信息;

将所述编码信息与数据库中真实接口地址信息进行匹配,获得所述转发接口的真实地址;

根据所述接口访问参数判断所述转发接口的网络协议类型,

根据所述网络协议类型所对应的转发方法将所述接口请求信息发送到所述转发接口的真实地址。

一种网络协议接口转发系统,包括:

参数获得模块,用于获取接口请求信息,根据所述接口请求信息获得接口访问参数,其中所述接口访问参数包括转发接口的编码信息;

接口匹配模块,用于将所述编码信息与数据库中真实接口地址信息进行匹配,获得所述转发接口的真实地址;

网络协议判断模块,用于根据所述接口访问参数判断所述转发接口的网络协议类型,

接口转发模块,用于根据所述网络协议类型所对应的转发方法将所述接口请求信息发送到所述转发接口的真实地址。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

获取接口请求信息,根据所述接口请求信息获得接口访问参数,其中所述接口访问参数包括转发接口的编码信息;

将所述编码信息与数据库中真实接口地址信息进行匹配,获得所述转发接口的真实地址;

根据所述接口访问参数判断所述转发接口的网络协议类型,

根据所述网络协议类型所对应的转发方法将所述接口请求信息发送到所述转发接口的真实地址。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

获取接口请求信息,根据所述接口请求信息获得接口访问参数,其中所述接口访问参数包括转发接口的编码信息;

将所述编码信息与数据库中真实接口地址信息进行匹配,获得所述转发接口的真实地址;

根据所述接口访问参数判断所述转发接口的网络协议类型,

根据所述网络协议类型所对应的转发方法将所述接口请求信息发送到所述转发接口的真实地址。

本发明中首先获得接口请求信息,解析接口请求信息获得接口访问参数,根据接口访问参数对接口访问请求进行接口地址匹配,确定转发接口的真实访问地址;然后判断转发接口的网络协议类型,根据转发接口的网络协议类型,采用相应的转发方法,将接口请求信息转发到转发接口的真实地址。本发明中的接口转发方法,能支持其他网络协议的接口转发,并且转发方法灵活。

附图说明

图1为本发明的接口转发方法在一个实施例中的流程示意图;

图2为本发明的接口转发方法在其中一个实施例中的流程示意图;

图3为本发明的接口转发方法在其中一个实施例中的流程示意图;

图4为本发明的接口转发方法在其中一个实施例中的流程示意图;

图5为本发明的接口转发方法在其中一个实施例中的流程示意图;

图6为本发明的接口转发方法在其中一个实施例中的流程示意图;

图7为本发明的网络协议接口转发系统在其中一个实施例中的结构示意图;

图8为本发明的网络协议接口转发系统在其中一个实施例中的结构示意图;

图9为本发明的网络协议接口转发系统在其中一个实施例中的结构示意图;

图10为本发明的接口转发方法在其中一个实施例中的结构示意图;

图11为本发明的计算机设备的在一个实施例中的结构示意图。

具体实施方式

下面将结合较佳实施例及附图对本发明的内容作进一步详细描述。显然,下文所描述的实施例仅用于解释本发明,而非对本发明的限定。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

图1为本发明的一种接口转发方法在一个实施例中的流程示意图,如图1所示,本发明实施例中的一种接口转发方法,包括以下步骤:

步骤s110,获取接口请求信息,根据接口请求信息获得接口访问参数,其中接口访问参数包括转发接口的编码信息。

具体而言,请求者对某一接口进行访问时,首先通过访问统一接口平台对外的url地址,并携带接口请求信息。url(uniformresourcelocator,统一资源定位符),它是www的统一资源定位标志,就是指网络地址。url由三部分组成:资源类型、存放资源的主机域名、资源文件名,其中url中包括网络协议、主机名(ip地址)以及一些其他参数等。另外,接口请求信息中存储着接口访问相关的参数,例如发送接口访问请求者标识信息、转发接口的转发接口编码信息以及接口转发参数等。统一接口平台在获得请求者发送的接口请求信息后对这些信息进行解析获得接口访问参数。

可选地,在统一接口平台获得接口访问参数之后,将接口访问参数缓存到服务器系统内存中,便于在后期操作中快速调取接口访问参数,大大提高接口转发速度。

步骤s120,将编码信息与数据库中真实接口地址信息进行匹配,获得转发接口的真实地址。

具体而言,接口访问请求者要对某一接口进行访问,首先应该确定该接口真实地址。而接口访问请求中往往只有转发接口编码信息,因此,要根据转发接口编码信息确定转发接口的真实地址信息。

在一种可选的实施方式中,建立一个接口信息数据库,其数据库中存储着一系列接口信息,接口信息包括接口编码信息和接口真实地址信息,其中接口编码信息与接口真实地址信息是一一对应的,即一个接口编码信息只会对应一个真实地址信息。因此,只需将转发接口编码信息与数据库中的真实接口地址信息进行匹配,就可以得到转发接口的真实地址信息。

步骤s130,根据接口访问参数判断转发接口的网络协议类型。

具体而言,网络协议(protocol),是使网络中的通信双方能顺利进行信息交互而双方预先约定好并遵循的规程和规则。因此,要知道接口支持的网络协议,才能对接口进行访问。常见网络协议包括:tcp/协议、ipx/spx协议、netbeui协议、http协议以及https协议。tcp/ip(transmissioncontrolprotocol/internetprotocol,传输控制协议/网间协议)是一种面向连接(连接导向)的、可靠的、基于字节流的运输层通信协议。ipx(internetworkpacketexchange,互联网络数据包交换)是一个专用的协议簇,它主要由novellnetware操作系统使用。netbeui(netbiosextenduserinterface,netbios用户扩展接口协议)。http(hypertexttransferprotocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议。https(hypertexttransferprotocoloversecuresocketlayer,安全套接层的超文本传输协议),是以安全为目标的http通道,即http下加入ssl层。

步骤s140,根据网络协议类型所对应的转发方法将接口请求信息发送到所述转发接口的真实地址。

上述的网络协议接口的转发方法,首先获得接口请求信息,解析接口请求信息获得接口访问参数,根据接口访问参数对接口访问请求进行接口地址匹配,确定转发接口的真实访问地址;然后判断转发接口的网络协议类型,根据转发接口的网络协议类型,采用相应的转发方法,将接口请求信息转发到转发接口的真实地址。本发明中的接口转发方法,能支持其他网络协议的接口转发,并且转发方法灵活。

在其中的一个实施例中,如图2所示,所述接口访问参数包括接口访问鉴权信息和当前时间信息;所述接口访问鉴权信息包括所述接口请求信息对应的请求者的标识信息、所述请求者的ip地址、动态签名信息以及所述请求者的权限信息;

在根据网络协议类型所对应的转发方法将接口请求信息发送到转发接口的真实地址的步骤之前,还包括:

步骤s210,对请求者的标识信息进行验证。

具体而言,接口访问请求者一般都有唯一标识,记为appkey。系统后台对接口请求标识信息进行验证。

步骤s220,将动态签名信息与系统后台自动生成的签名信息进行比对匹配。

系统后台将接口访问请求的动态签名信息与系统后台自动生成的签名信息进行比较,当这两个信息相同时,表明接口访问请求的动态签名信息通过验证。对接口访问请求的动态签名信息进行验证,能有效确保接口访问安全性,以免接口请求信息中携带其他不安全数据文件等对统一接口平台系统造成安全隐患。

步骤s230,判断请求者的ip地址是否在系统白名单中。

对接口访问请求的ip地址进行验证,从而确定接口访问请求的ip地址是否在系统白名单中,即接口访问请求者是否可以访问该接口。如果接口访问请求者可以访问该接口时,就进入下一步骤;如果接口访问请求者不可以访问该接口时,就对该接口访问请求者进行拦截,阻止该请求者访问该接口。

步骤s240,根据权限信息,判断请求者是否具有访问转发接口的权限。

具体而言,系统后台要对请求者请求访问的接口转发权限进行验证,判断请求者是否具有访问该接口的权限,如果没有则拦截该请求者访问该接口。

步骤s250,判断所述请求者访问所述转发接口的剩余次数是否大于0。

在本实施例中,接口转发次数有数量限制,通常为10次,系统会判断请求者可访问该接口的剩余次数,如果等于0,则拒绝请求。对请求者转发接口进行次数现限制,减少请求者过多访问该接口,增加系统运行负担。

步骤s260,在请求者的标识信息通过验证、动态签名信息与系统后台自动生成的签名信息一致、接请求者的ip地址在系统白名单中以及剩余次数大于0时,判定接口访问请求鉴权验证成功,并将接口请求信息转发到转发接口的真实地址。

具体而言,接口访问请求者某一接口进行访问时,要先确定接口请求者对该接口进行访问的权限等进行检测验证,只有在验证通过时,请求者才能访问该接口。

应当理解为,上述的步骤只是为了叙述方便,并不是对方法顺序的限定,步骤s210~步骤s250的顺序可以互换。

在其中的一个实施例中,如图3所示,在根据所述接口请求信息获得接口访问参数的步骤中,包括:

步骤s111,判断接口请求信息中请求头格式类型。

步骤s112,在接口请求信息中请求头是application/json类型时,将接口请求信息转化成数据流,并对数据流进行解析获得接口访问参数。

具体地,要从接口请求信息中解析得到接口访问参数,首先是判断当前的接口请求信息中请求头格式类型,即httprequest的请求头head格式是否为application/json类型。如果是application/json类型,使用程序内部定义的一套特殊程序来解析当前请求,解析出所需要的参数,如请求者的appkey(请求者身份唯一标识),sign(请求者动态签名信息),interfacecode(接口编码)并将解析出来的参数缓存到系统内存中;其中上述中特殊程序可以是采用“流”概念,将接口请求信息转化成数据流,然后对数据流进行解析得到接口访问参数。将请求信息转化成数据流再对其进行解析,操作简单且速度快。

如果不是application/json的请求格式类型,则直接解析参数。

在其中的一个实施例中,如图4所示,在根据接口访问参数判断转发接口的网络协议类型的步骤中,包括:

步骤s131,提取接口访问参数中的网络协议关键字。

步骤s132,根据网络协议关键字确定转发接口的网络协议类型。

具体地,通过解析httprequest的请求url来判断是否包含https关键字,如果包含,则表明https协议转发,如果不包含,则表明是http协议。

在其中的一个实施例中,如图5所示,所述网络协议类型为http网络协议或https网络协议;

在转发接口的网络协议类型是http协议时,根据网络协议类型所对应的转发方法将接口请求信息发送到转发接口的真实地址的步骤中,包括:

步骤s141,根据http协议对接口访问参数进行封装,并将封装后的接口访问参数转发到转发接口的真实地址。

具体地,如果需要转发的接口为http类型,并且在鉴权验证都通过的情况下,程序首先将最开始解析出来的参数封装在一起,在根据转发接口的url地址在后台进行转发,并且会按照请求者请求转发的格式来进行接口的转发,比如application/json、form、post、get等等,然后按json格式返回转发接口后所返回的数据给接口访问请求者。

在转发接口的网络协议类型是https协议时,根据网络协议类型所对应的转发方法将接口请求信息发送到转发接口的真实地址的步骤中,包括:

步骤s142,根据https协议对接口访问参数进行封装;获取转发接口的加密套接字协议层认证证书,并根据加密套接字协议层认证证书来创建客户端编程工具包的代理对象;根据客户端编程工具包的代理对象将封装后的接口访问参数转发到所述转发接口的真实地址。

具体地,如果需要转发的接口为https类型,首先对参数进行封装,然后要对需要转发的接口进行认证,拿到需要转发接口的ssl(securitysocketlayer加密套接字协议层)认证证书,根据证书来创建客户端编程工具包的代理对象。然后,在根据转发接口的url地址在后台进行转发,并且会按照请求者请求转发的格式来进行接口的转发,比如application/json、form、post、get等等,然后按json格式返回转发接口后所返回的数据给接口访问请求者。另外,其中客户端编程工具包可以是httpclient,httpclient是apachejakartacommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持http协议的客户端编程工具包,能够实现所有http的方法,并且可以支持https协议。

在其中的一个实施例中,如图6所示,在根据网络协议类型所对应的转发方法将接口请求信息发送到转发接口的真实地址的步骤之后,还包括:

步骤s150,获得转发接口的返回数据,并将返回数据转为json格式的返回数据。

步骤s160,将json格式的返回数据返回至与接口请求信息相对应的请求者。

具体地,在将接口请求信息转发到转发接口的真实地址后,得到返回数据,将返回数据转化为json格式,并返回给接口访问请求者。采用数据封装形式并转化为json格式,保证数据传输速度快。

在其中的一个实施例中,如图6所示,还包括:

步骤s170,生成请求者访问转发接口的历史记录,并更新请求者访问转发接口的剩余次数。

具体地,在将返回数据发送给接口访问请求者后,系统会记录接口访问请求者请求转发的转发接口的历史转发信息,并更新接口的转发次数信息,便于请求者在后期访问该接口时进行鉴权验证。

根据上述本发明的接口转发方法,本发明还提供一种网络协议接口转发系统,下面结合附图及较佳实施例对本发明的网络协议接口转发系统进行详细说明。

图7为本发明的网络协议接口转发系统在一个实施例中的结构示意图。如图7所示,该实施例中的网络协议接口转发系统,包括:

参数获得模块10,用于获取接口请求信息,根据接口请求信息获得接口访问参数,其中接口访问参数包括转发接口的编码信息。

接口匹配模块20,用于将编码信息与数据库中真实接口地址信息进行匹配,获得转发接口的真实地址。

网络协议判断模块30,用于根据接口访问参数判断转发接口的网络协议类型。

接口转发模块40,用于根据网络协议类型所对应的转发方法将所述接口请求信息发送到转发接口的真实地址。

在其中的一个实施例中,如图8所示,所述接口访问参数包括接口访问鉴权信息和当前时间信息;所述接口访问鉴权信息包括:接口访问请求标识信息、接口访问请求的ip信息、接口转发的权限信息和接口的转发次数信息,还包括鉴权模块50:

所述鉴权模块50,用于根据接口访问请求鉴权信息对接口访问请求进行鉴权验证。其中,如图9所示,鉴权模块50还包括:

标识信息验证模块51,用于对请求者的标识信息进行验证。

签名验证模块52,用于将动态签名信息与系统后台自动生成的签名信息进行比对匹配。

ip地址验证模块53,用于判断请求者的ip地址是否在系统白名单中。

转发权限验证模块54,用于根据权限信息,判断请求者是否具有访问所述转发接口的权限。

转发次数验证模块55,用于判断所述请求者访问所述转发接口的剩余次数是否大于0。

接口转发模块40还用于在请求者的标识信息通过验证、动态签名信息与系统后台自动生成的签名信息一致、请求者的ip地址在系统白名单中以及剩余次数大于0时,判定接口访问请求鉴权验证成功,并将接口请求信息转发到转发接口的真实地址。

在其中的一个实施例中,如图10所示,所述参数获得模块10还包括:

请求头类型判断模型11,用于判断接口请求信息中请求头格式类型。

参数解析模块12,用于在接口请求信息中请求头是application/json类型时,将接口请求信息转化成数据流,并对数据流进行解析获得接口访问参数。

在其中的一个实施例中,如图10所示,还包括关键字解析模块31:

关键字提取模块31,用于提取接口访问参数中的网络协议关键字。

网络协议确定模块30,用于根据网络协议关键字确定转发接口的网络协议类型。

在其中的一个实施例中,所述网络协议为http网络协议或https网络协议,图10所示,所述转发模块40,包括:

http接口转发模块51,用于在转发接口的网络协议类型是http协议时,根据http协议对接口访问参数进行封装,并将封装后的接口访问参数转发到转发接口的真实地址。

https接口转发模块52,用于在转发接口的网络协议类型是https协议时,根据https协议对接口访问参数进行封装;获取转发接口的加密套接字协议层认证证书,并根据加密套接字协议层认证证书来创建客户端编程工具包的代理对象;根据客户端编程工具包的代理对象将封装后的接口访问参数转发到所述转发接口的真实地址。

在其中一个实施例中,如图8所示,还包括:

返回数据获得模块60,用于获得转发接口的返回数据,并将返回数据转为json格式的返回数据。

返回数据发送模块70,用于将json格式的返回数据返回至与接口请求信息相对应的请求者。

在其中的一个实施例中,如图8所示,还包括:

信息记录模块80,用于生成请求者访问转发接口的历史记录,并更新请求者访问转发接口的剩余次数。

上述网络协议接口转发系统可执行本发明实施例所提供的接口转发方法,具备执行方法相应的功能模块和有益效果。至于其中各个功能模块所执行的处理方法,例如参数获取获得块10、接口匹配模块20、网络协议判断模块30、接口转发模块40、鉴权模块50、返回数据获得模块60、返回数据发送模块70、信息记录模块80,可参照上述方法实施例中的描述,此处不再进行赘述。

根据上述本发明的接口转发方法和系统,本发明还提供一种计算机设备,下面结合附图及较佳实施例对本发明的计算机设备进行详细说明。

图11为本发明的计算机设备在一个实施例中的结构示意图。如图10所示,该实施例中的计算机设备100,包括存储器101、处理器102及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行程序时可实现本发明方法实施例中的所有方法步骤。

上述计算机设备100中处理器102可执行本发明实施例所提供的接口转发方法,具备执行方法相应的有益效果。可参照上述方法实施例中的描述,此处不再进行赘述。

根据上述本发明的接口转发方法、系统和计算机设备,本发明还提供一种计算机可读存储介质,下面结合附图及较佳实施例对本发明的计算机可读存储介质进行详细说明。

本发明实施例中的计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可以实现本发明方法实施例中的所有方法步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

上述计算机可读存储介质用于存储本发明实施例所提供的接口转发方法的程序(指令),其中执行该程序可以执行本发明实施例所提供的接口转发方法,具备执行方法相应有益效果。可参照上述方法实施例中的描述,此处不再进行赘述。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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