一种适用于公有云平台的API网关实现方法技术

技术编号:32775064 阅读:13 留言:0更新日期:2022-03-23 19:31
本发明专利技术公开了一种适用于公有云平台的API网关实现方法,包括实现基于Web的可视化API管理服务,并上线API;然后,API的使用方按照时长、次数的方式进行购买并使用API;基于Kong,使用Lua语言开发Kong插件,Kong插件通过调用billing.apiAuth方法对客户端身份进行校验认证,通过调用billing.apiRepay方法对API执行实现计费;API调用完成后,apiRepay方法记录这次API的调用情况,使用API网关的访问日志,后台线程将日志发送到分布式存储软件和监控软件中,实现网关的运维统计、监控功能。本发明专利技术通过API网关方案实现了开发、测试、发布、售卖及运维监测等API生命周期全周期的需求,减少了用户的使用成本,帮助用户以更快速,更高效的方式部署、运维自己的API。运维自己的API。运维自己的API。

【技术实现步骤摘要】
一种适用于公有云平台的API网关实现方法


[0001]本专利技术涉及计算机
,具体来说,涉及一种适用于公有云平台的API网关实现方法。

技术介绍

[0002]API 网关(API Gateway)提供API托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等API各个生命周期阶段。帮助用户快速构建以API为核心的系统架构,满足新技术引入、系统集成、业务中台等诸多场景需要。
[0003]目前亚马逊、腾讯云及阿里云等公有云厂商均提供了自己的API网关服务,但是这些服务都是闭源的,自建云平台无法直接使用,开源解决方案需要企业根据自身情况订制,目前主流的解决方案即是基于Kong+Lua脚本以及Orange。Zuul本质是一个基于Java Servlet的应用,较多的用于Spring Cloud框架的应用开发中,不适用于公有云平台下多种应用的情况,Kong与Orange类似,都是基于Openresty的开源API网关,但是Orange只发布到0.6版本,并且已经有近2年未更新,只是提供了API网关的基础功能,只保证了后端服务能够访问这一基本要求,但是认证、授权、计费、监控及服务上下线功能均需要企业独立实现。现有开源解决方案功能单一,已无法支撑开发者API生命周期全周期需求。

技术实现思路

[0004]针对相关技术中的上述技术问题,本专利技术提出一种适用于公有云平台的API网关实现方法,能够克服现有技术方法的上述不足。
[0005]为实现上述技术目的,本专利技术的技术方案是这样实现的:一种适用于公有云平台的API网关实现方法,包括以下步骤:S1: 首先,使用Java、JavaScript与Html语言,实现基于Web的可视化API管理服务,并上线API;S2: API提供方上线API后,API的使用方按照时长、次数的方式进行购买并使用API;S3: 基于Kong,使用Lua语言开发Kong插件,Kong插件通过调用billing.apiAuth方法对客户端身份进行校验,执行并实现网关的认证功能,Kong插件通过调用billing.apiRepay方法对API执行并实现计费记录功能;S4:API调用完成后,apiRepay方法记录这次API的调用情况,包括是否成功,如果出错,还需要记录错误原因等信息;S5: 最后,使用API网关的访问日志,后台线程将日志发送到分布式存储软件和监控软件中,实现网关的运维统计、监控功能。
[0006]进一步地,所述基于Web的可视化API管理服务的功能包括创建API、删除API、查看API列表、API上线、API下线及查看API的统计信息。
[0007]进一步地,所述在存储软件和监控软件中实现网关的运维统计和监控功能,首先
是在存储软件中进行相关的聚合统计,为API的提供方展示整个API的调用情况;在监控软件中对所述调用情况进行监控,若监控到出现持续失败的情况,监控软件则向API提供方发送报警通知。
[0008]进一步地,所述调用情况包括调用次数和成功率数据信息,所述客户端对API的调用进行校验认证是在access阶段;所述客户端对API的调用进行计费记录时在header filter阶段。
[0009]进一步地,Kong插件调用apiRepay()方法的前提是客户端提供的认证密钥错误或客户端对API的使用超出了计费限制。
[0010]本专利技术的有益效果:通过使用Kong插件,API网关提供了身份认证,权限校验以及计费相关功能,再结合相应Web服务、存储软件和监控软件实现了一个使用于共有云平台的API网关,实现了API生命周期全周期的管理功能;通过API网关方案实现了开发、测试、发布、售卖及运维监测等API生命周期全周期的需求,减少了用户的使用成本,帮助用户以更快速,更高效的方式部署、运维自己的API。
附图说明
[0011]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0012]图1是根据本专利技术实施例所述的适用于公有云平台的API网关实现方法的整体方案结构示意图。
具体实施方式
[0013]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围,为了方便理解本专利技术的上述技术方案,以下通过具体使用方式上对本专利技术的上述技术方案进行详细说明。
[0014]如图1所示,根据本专利技术实施例所述的适用于公有云平台的API网关实现方法,包括首先,使用Java、JavaScript与Html语言,实现基于Web的可视化API管理服务。管理服务的功能包括创建和删除API、查看API列表、API上线、API下线及查看API的统计信息。实现基于Web的可视化API管理服务的功能之后,用户可以使用图形界面直观的新增和删除API,实现API的上线和下线,以及查看API的统计信息。
[0015]所述创建API,例如:public interface OpenApiService {/** * 为指定类型的应用创建API * @param apiCreateDTO API创建信息 */
void createApiForSpecificApp(ApiCreateDTO apiCreateDTO); }。
[0016]API提供方上线API后,API的使用方按照时长、次数的方式进行购买并使用API。
[0017]基于Kong,使用Lua语言开发Kong插件,在客户端请求的access阶段,Kong插件通过调用billing.apiAuth方法对客户端身份进行校验,执行并实现网关的认证功能。如果客户端提供的认证密钥错误,或者客户端对API的使用超出了计费限制,则服务调用该API。在客户端请求的header_filter()阶段,Kong插件通过调用billing.apiRepay方法对API执行并实现计费记录功能;Kong插件代码结构的billing.lua文件中,实现了认证和计费记录的核心逻辑,其中billing.apiAuth()方法从Http请求header上的Authorization字段获取客户端的认证密钥,然后对该密钥进行权限验证,通过认证后,才可以进一步访问该API。
[0018]上述所述Kong插件代码结构文件还包括billing.lua、common.lua、daos.lua、handler.lua、schema.lua。
[0019]API调用完成后,apiRepay方法记录这次API的调用情况,包括是否成功,如果出错,还需要记录错误原因等信息;最后,使用API网关的访问日志,API网关的日志本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种适用于公有云平台的API网关实现方法,其特征在于,包括以下步骤:S1: 首先,使用Java、JavaScript与Html语言,实现基于Web的可视化API管理服务,并上线API;S2: API提供方上线API后,API的使用方按照时长、次数的方式进行购买并使用API;S3: 基于Kong,使用Lua语言开发Kong插件,Kong插件通过调用billing.apiAuth方法对客户端身份进行校验,执行并实现网关的认证功能,Kong插件通过调用billing.apiRepay方法对API执行并实现计费记录功能;S4:API调用完成后,apiRepay方法记录这次API的调用情况,包括是否成功,如果出错,还需要记录错误原因等信息;S5: 最后,使用API网关的访问日志,后台线程将日志发送到分布式存储软件和监控软件中,实现网关的运维统计、监控功能。2.根据权利要求1所述的适用于公有云平台的API网关实现方法,其特征在于,所述基于Web的可视化AP...

【专利技术属性】
技术研发人员:冀天宇谢水庚刘鹰刘明刘强刘威邓建红
申请(专利权)人:北京航天云路有限公司
类型:发明
国别省市:

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

1