一种API网关实现协议转换的方法技术

技术编号:19751436 阅读:30 留言:0更新日期:2018-12-12 05:47
本发明专利技术公开了一种API网关实现协议转换的方法,含步骤:A.终端APP向API网关发起访问请求;B.API网关解析请求信息;C.根据步骤B中的解析结果判断访问请求是否需要转换,若是进入步骤D,否则进入步骤H;D.对访问请求进行转换并进入步骤E;E.将转换后的请求信息路由到后端微服务并进入步骤F;F.后端微服务处理访问请求并将结果返回API网关进入步骤G;G.对收到的结果信息进行转换并进入步骤J;H.将请求信息路由到后端微服务;I.后端微服务处理访问请求并将结果返回API网关进入步骤J;J.结果信息返回至终端APP。本发明专利技术的方法可让API网关适应多种微服务后端,有利于实现异构的复杂系统的微服务集成。

【技术实现步骤摘要】
一种API网关实现协议转换的方法
本专利技术涉及计算机软件的分布式系统
,特别涉及一种API网关实现协议转换的方法。
技术介绍
随着移动互联网的不断深入,越来越多的公司和企业逐渐开始面向互联网,并且把面向客户的服务和业务也迁移到线上。在开发这些线上业务时,随着客户数量的不断增多,业务平台的架构也在不断地变化演进。从早期的单体应用架构逐渐转变为微服务架构,集群和分布式也成为了标配的技术。在构建微服务架构的基础平台的过程中,API网关是必不可少的核心组件之一。API网关为一组微服务提供统一的接口,以便客户端无需知道微服务内部的所有细节。由于API网关是终端用户访问的统一入口,对于终端APP而言,如果API网关的后端有多种微服务,那么就需要针对每一种微服务采取相应的访问方式。这样就造成了,后端微服务的种类越多,终端APP的业务逻辑和开发就越复杂,开发的难度也随之增大,APP软件的质量也随之下降。目前传统的解决方案是对各种微服务进行改造,采用统一的服务规格,从而简化终端APP的业务逻辑。但是这种方法存在着改造已有微服务会面临的困难,以及微服务种类多原本就是目前IT业界的原生态,这种方法不能很好地适应实际的情况。
技术实现思路
本专利技术的目的是克服上述
技术介绍
中不足,提供一种API网关实现协议转换的方法,该方法适用于采用了集群和/或分布式设计的系统,可实现让API网关适应多种微服务后端,有利于实现异构的复杂系统的微服务集成,另外还有利于简化终端APP的业务逻辑,使得既满足了业务复杂多样性的需求,又降低了终端APP的复杂性,对系统整体而言也是一大进步,提升了系统整体的可靠性和稳定性。为了达到上述的技术效果,本专利技术采取以下技术方案:一种API网关实现协议转换的方法,包括以下步骤:A.终端APP向API网关发起访问请求,所述访问请求中包含认证信息和服务信息;其中,终端APP可以是个人电脑、智能手机、平板电脑等终端设备上安装的软件,这些终端APP通过互联网向API网关发起访问请求,且API网关是指微服务架构中的API网关服务,它是所有微服务访问的统一入口。B.API网关解析收到的访问请求中的请求信息;C.API网关根据步骤B中的解析结果判断访问请求是否需要转换,若需要则进入步骤D,否则进入步骤H;D.API网关对访问请求进行转换从而得到转换后的请求信息并进入步骤E;E.API网关将转换后的请求信息路由到后端微服务并进入步骤F;F.后端微服务处理访问请求并将结果返回API网关并进入步骤G;G.API网关对收到的结果信息进行转换并进入步骤J;H.API网关直接将请求信息路由到后端微服务;I.后端微服务处理访问请求并将结果返回API网关并进入步骤J;J.API网关将结果信息返回至终端APP;在本专利技术的方法中,通过在API网关层提供统一的协议转换方法,可以让API网关适应多种微服务后端,有利于实现异构的复杂系统的微服务集成,另外还有利于简化终端APP的业务逻辑,使得既满足了业务复杂多样性的需求,又降低了终端APP的复杂性,对系统整体而言也是一大进步,提升了系统整体的可靠性和稳定性。进一步地,所述认证信息至少包含用户名、密码、令牌、令牌的有效时间、终端IP地址;所述服务信息至少包含请求的微服务名、微服务ID。进一步地,所述步骤B中还包括API网关根据请求信息中包含的微服务名或微服务ID对访问请求进行分类。进一步地,所述API网关对访问请求进行分类时包含以下类别:HTTP、HTTPS、WebSocket、RPC、AMQP、JMS。进一步地,所述步骤C中API网关判断访问请求是否需要转换的依据是:判断访问请求的类别与所请求的后端微服务的类别是否为同一个类别,如果是,则无需转换;否则,就需要实现协议和请求数据的转换。进一步地,所述步骤D中API网关对访问请求进行转换时是将访问请求的数据按后端微服务的类别进行转换,即使用预定义的协议模板,将访问请求的元数据填入协议模板,从而得到转换后的请求信息,所述协议模板是根据协议的类别分别设计,至少包括以下类别的模板:HTTP、HTTPS、WebSocket、RPC、AMQP、JMS。进一步地,所述步骤D中API网关对访问请求的转换还包括请求信息中数据格式的转换。进一步地,所述步骤C中还包括API网关对终端APP的访问请求进行标识,并将判断的是否需要转换的结果信息及经标识的访问请求的请求信息记录到高速缓存中。本专利技术与现有技术相比,具有以下的有益效果:在本专利技术的API网关实现协议转换的方法中,通过在API网关层提供统一的协议转换方法,可以让API网关适应多种微服务后端,有利于实现异构的复杂系统的微服务集成,另外还有利于简化终端APP的业务逻辑,使得既满足了业务复杂多样性的需求,又降低了终端APP的复杂性,对系统整体而言也是一大进步,提升了系统整体的可靠性和稳定性。附图说明图1是本专利技术的API网关实现协议转换的方法的流程示意图。具体实施方式下面结合本专利技术的实施例对本专利技术作进一步的阐述和说明。实施例:如图1所示,一种API网关实现协议转换的方法,该方法可以应用于微服务架构中,可以应用于分布式计算平台、云计算平台等数据中心,具体的,该方法主要包括以下步骤:步骤101,终端APP访问API网关。本实施例中的终端APP为个人电脑、智能手机、平板电脑等终端设备上安装的软件,上述终端APP通过互联网向API网关发起访问请求。具体的,API网关是指微服务架构中的API网关服务,它是所有微服务访问的统一入口。且发起的访问请求中还包括终端用户的认证信息和服务信息,具体包括用户名、密码、令牌、令牌的有效时间、终端IP地址、请求的微服务名、微服务ID等信息。步骤102,API网关解析APP的请求信息。API网关解析APP传过来的请求信息,并根据微服务ID或微服务名对请求进行分类。具体在本实施例中是根据微服务ID或微服务名对请求进行分类,具体实施时至少有HTTP、HTTPS、WebSocket、RPC、AMQP、JMS等分类。步骤103,API网关判断APP请求是否需要转换。API网关根据上一步骤解析的结果进行判断,决定是否需要对APP请求进行转换。如果是,转向步骤104;如果否,转向步骤105。本实施例中,具体判断是都需要转换的方法是通过判断APP请求的类别与所请求的后端微服务的类别是否为同一个类别,如果是,则无需转换;如果否,就需要实现协议和请求数据的转换。作为优选,本实施例的步骤103中还包括API网关对终端APP的请求进行标识的操作,且API网关将记录APP请求信息和是否转换的信息到高速缓存中,提供给步骤107使用。步骤104,API网关调用转换模块来转换API请求。API网关根据步骤103的判断结果,将APP请求的数据按后端微服务的类别进行转换。本实施例中,具体转换时是根据后端微服务的类别,以此类别的协议为基础,并使用预定义的协议模板,将APP请求的元数据填入协议模板,从而得到转换后的请求信息。上述协议模板是根据协议的类别分别设计,包括HTTP、HTTPS、WebSocket、RPC、AMQP、JMS等模板。同时,请求数据的转换还包括数据格式的转换,使用的数据格式包括Avro、BSON、CBOR、CSV、S本文档来自技高网...

【技术保护点】
1.一种API网关实现协议转换的方法,其特征在于,包括以下步骤:A.终端APP向API网关发起访问请求,所述访问请求中包含认证信息和服务信息;B.API网关解析收到的访问请求中的请求信息;C.API网关根据步骤B中的解析结果判断访问请求是否需要转换,若需要则进入步骤D,否则进入步骤H;D.API网关对访问请求进行转换从而得到转换后的请求信息并进入步骤E;E.API网关将转换后的请求信息路由到后端微服务并进入步骤F;F.后端微服务处理访问请求并将结果返回API网关并进入步骤G;G.API网关对收到的结果信息进行转换并进入步骤J;H.API网关直接将请求信息路由到后端微服务;I.后端微服务处理访问请求并将结果返回API网关并进入步骤J;J.API网关将结果信息返回至终端APP。

【技术特征摘要】
1.一种API网关实现协议转换的方法,其特征在于,包括以下步骤:A.终端APP向API网关发起访问请求,所述访问请求中包含认证信息和服务信息;B.API网关解析收到的访问请求中的请求信息;C.API网关根据步骤B中的解析结果判断访问请求是否需要转换,若需要则进入步骤D,否则进入步骤H;D.API网关对访问请求进行转换从而得到转换后的请求信息并进入步骤E;E.API网关将转换后的请求信息路由到后端微服务并进入步骤F;F.后端微服务处理访问请求并将结果返回API网关并进入步骤G;G.API网关对收到的结果信息进行转换并进入步骤J;H.API网关直接将请求信息路由到后端微服务;I.后端微服务处理访问请求并将结果返回API网关并进入步骤J;J.API网关将结果信息返回至终端APP。2.根据权利要求1所述的一种API网关实现协议转换的方法,其特征在于,所述认证信息至少包含用户名、密码、令牌、令牌的有效时间、终端IP地址;所述服务信息至少包含请求的微服务名、微服务ID。3.根据权利要求2所述的一种API网关实现协议转换的方法,其特征在于,所述步骤B中还包括API网关根据请求信息中包含的微服务名或微服务ID对访问请求进行分类。4.根据权利要求3所述的一种API网关实现协议转换的方法,其特...

【专利技术属性】
技术研发人员:李强王凤琴
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1