CN114221949B - 一种适用于公有云平台的api网关实现方法 - Google Patents
一种适用于公有云平台的api网关实现方法 Download PDFInfo
- Publication number
- CN114221949B CN114221949B CN202111448272.4A CN202111448272A CN114221949B CN 114221949 B CN114221949 B CN 114221949B CN 202111448272 A CN202111448272 A CN 202111448272A CN 114221949 B CN114221949 B CN 114221949B
- Authority
- CN
- China
- Prior art keywords
- api
- gateway
- calling
- monitoring
- kong
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 239000008186 active pharmaceutical agent Substances 0.000 claims abstract description 109
- 230000006870 function Effects 0.000 claims abstract description 24
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 238000007600 charging Methods 0.000 claims abstract description 11
- 238000012423 maintenance Methods 0.000 claims abstract description 10
- 230000000007 visual effect Effects 0.000 claims abstract description 6
- 238000012795 verification Methods 0.000 claims description 5
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000011160 research Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 4
- 238000012360 testing method Methods 0.000 abstract description 3
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/14—Charging, metering or billing arrangements for data wireline or wireless communications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种适用于公有云平台的API网关实现方法,包括实现基于Web的可视化API管理服务,并上线API;然后,API的使用方按照时长、次数的方式进行购买并使用API;基于Kong,使用Lua语言开发Kong插件,Kong插件通过调用billing.apiAuth方法对客户端身份进行校验认证,通过调用billing.apiRepay方法对API执行实现计费;API调用完成后,apiRepay方法记录这次API的调用情况,使用API网关的访问日志,后台线程将日志发送到分布式存储软件和监控软件中,实现网关的运维统计、监控功能。本发明通过API网关方案实现了开发、测试、发布、售卖及运维监测等API生命周期全周期的需求,减少了用户的使用成本,帮助用户以更快速,更高效的方式部署、运维自己的API。
Description
技术领域
本发明涉及计算机技术领域,具体来说,涉及一种适用于公有云平台的API网关实现方法。
背景技术
API 网关(API Gateway)提供API托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等API各个生命周期阶段。帮助用户快速构建以API为核心的系统架构,满足新技术引入、系统集成、业务中台等诸多场景需要。
目前亚马逊、腾讯云及阿里云等公有云厂商均提供了自己的API网关服务,但是这些服务都是闭源的,自建云平台无法直接使用,开源解决方案需要企业根据自身情况订制,目前主流的解决方案即是基于Kong+Lua脚本以及Orange。Zuul本质是一个基于JavaServlet的应用,较多的用于Spring Cloud框架的应用开发中,不适用于公有云平台下多种应用的情况,Kong与Orange类似,都是基于Openresty的开源API网关,但是Orange只发布到0.6版本,并且已经有近2年未更新,只是提供了API网关的基础功能,只保证了后端服务能够访问这一基本要求,但是认证、授权、计费、监控及服务上下线功能均需要企业独立实现。现有开源解决方案功能单一,已无法支撑开发者API生命周期全周期需求。
发明内容
针对相关技术中的上述技术问题,本发明提出一种适用于公有云平台的API网关实现方法,能够克服现有技术方法的上述不足。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种适用于公有云平台的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网关的访问日志,后台线程将日志发送到分布式存储软件和监控软件中,实现网关的运维统计、监控功能。
进一步地,所述基于Web的可视化API管理服务的功能包括创建API、删除API、查看API列表、API上线、API下线及查看API的统计信息。
进一步地,所述在存储软件和监控软件中实现网关的运维统计和监控功能,首先是在存储软件中进行相关的聚合统计,为API的提供方展示整个API的调用情况;在监控软件中对所述调用情况进行监控,若监控到出现持续失败的情况,监控软件则向API提供方发送报警通知。
进一步地,所述调用情况包括调用次数和成功率数据信息,所述客户端对API的调用进行校验认证是在access阶段;所述客户端对API的调用进行计费记录时在headerfilter阶段。
进一步地,Kong插件调用apiRepay()方法的前提是客户端提供的认证密钥错误或客户端对API的使用超出了计费限制。
本发明的有益效果:通过使用Kong插件,API网关提供了身份认证,权限校验以及计费相关功能,再结合相应Web服务、存储软件和监控软件实现了一个使用于共有云平台的API网关,实现了API生命周期全周期的管理功能;通过API网关方案实现了开发、测试、发布、售卖及运维监测等API生命周期全周期的需求,减少了用户的使用成本,帮助用户以更快速,更高效的方式部署、运维自己的API。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的适用于公有云平台的API网关实现方法的整体方案结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围,为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。
如图1所示,根据本发明实施例所述的适用于公有云平台的API网关实现方法,包括首先,使用Java、JavaScript与Html语言,实现基于Web的可视化API管理服务。管理服务的功能包括创建和删除API、查看API列表、API上线、API下线及查看API的统计信息。实现基于Web的可视化API管理服务的功能之后,用户可以使用图形界面直观的新增和删除API,实现API的上线和下线,以及查看API的统计信息。
所述创建API,例如:
public interface OpenApiService {
/**
* 为指定类型的应用创建API
* @param apiCreateDTO API创建信息
*/
void createApiForSpecificApp(ApiCreateDTO apiCreateDTO);
}。
API提供方上线API后,API的使用方按照时长、次数的方式进行购买并使用API。
基于Kong,使用Lua语言开发Kong插件,在客户端请求的access阶段,Kong插件通过调用billing.apiAuth方法对客户端身份进行校验,执行并实现网关的认证功能。如果客户端提供的认证密钥错误,或者客户端对API的使用超出了计费限制,则服务调用该API。在客户端请求的header_filter()阶段,Kong插件通过调用billing.apiRepay方法对API执行并实现计费记录功能;Kong插件代码结构的billing.lua文件中,实现了认证和计费记录的核心逻辑,其中billing.apiAuth()方法从Http请求header上的Authorization字段获取客户端的认证密钥,然后对该密钥进行权限验证,通过认证后,才可以进一步访问该API。
上述所述Kong插件代码结构文件还包括billing.lua、common.lua、daos.lua、handler.lua、schema.lua。
API调用完成后,apiRepay方法记录这次API的调用情况,包括是否成功,如果出错,还需要记录错误原因等信息;
最后,使用API网关的访问日志,API网关的日志记录在主机或者虚拟机的磁盘中,后台线程将日志发送到分布式存储软件ElasticSearch和监控软件Prometheus中,在ElasticSearch中并进行相关的聚合统计,为API的提供方展示整个API的调用情况,包括调用次数,成功率等信息。在Prometheus中对调用情况进行监控,如果出现持续失败的情况,则向API提供方发送报警通知,从而实现网关的运维统计、监控功能。
综上所述,借助于本发明的上述技术方案,通过选择基于Kong结合Java、JavaScript、Html开发的Web界面,开源监控软件Prometheus,分布式存储软件ElasticeSearch实现了API生命周期全周期的管理功能,API网关提供了身份认证,权限校验以及计费相关功能,结合相应Web服务,分布式存储软件ElasticSearch、监控软件Prometheus实现了一个使用于共有云平台的API网关,本发明提供的API网关方案实现了开发、测试、发布、售卖及运维监测等API生命周期全周期的需求,减少了用户的使用成本,帮助用户以更快速,更高效的方式部署、运维自己的API。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
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的调用情况,包括是否成功,如果出错,还需要记录错误原因信息;
Kong插件调用apiRepay方法的前提是客户端提供的认证密钥错误或客户端对API的使用超出了计费限制;
S5: 最后,使用API网关的访问日志,后台线程将日志发送到分布式存储软件和监控软件中,实现网关的运维统计、监控功能;
所述分布式存储软件为分布式存储软件ElasticeSearch,所述监控软件是开源监控软件Prometheus;
所述在存储软件和监控软件中实现网关的运维统计和监控功能,首先是在存储软件中进行相关的聚合统计,为API的提供方展示整个API的调用情况;在监控软件中对所述调用情况进行监控,若监控到出现持续失败的情况,监控软件则向API提供方发送报警通知;
所述调用情况包括调用次数和成功率数据信息,所述客户端对API的调用进行校验认证是在access阶段;所述客户端对API的调用进行计费记录时在header filter阶段。
2.根据权利要求1所述的适用于公有云平台的API网关实现方法,其特征在于,所述基于Web的可视化API管理服务的功能包括创建API、删除API、查看API列表、API上线、API下线及查看API的统计信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111448272.4A CN114221949B (zh) | 2021-11-30 | 2021-11-30 | 一种适用于公有云平台的api网关实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111448272.4A CN114221949B (zh) | 2021-11-30 | 2021-11-30 | 一种适用于公有云平台的api网关实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114221949A CN114221949A (zh) | 2022-03-22 |
CN114221949B true CN114221949B (zh) | 2024-04-05 |
Family
ID=80699177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111448272.4A Active CN114221949B (zh) | 2021-11-30 | 2021-11-30 | 一种适用于公有云平台的api网关实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114221949B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037577A (zh) * | 2022-06-27 | 2022-09-09 | 江苏安超云软件有限公司 | 智能化网关服务管理平台 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10148493B1 (en) * | 2015-06-08 | 2018-12-04 | Infoblox Inc. | API gateway for network policy and configuration management with public cloud |
WO2020134329A1 (zh) * | 2018-12-29 | 2020-07-02 | 中兴通讯股份有限公司 | 一种网关业务实现方法、控制装置和网关 |
CN111371679A (zh) * | 2020-03-09 | 2020-07-03 | 山东汇贸电子口岸有限公司 | 一种基于kubernetes与Kong实现API网关的方法 |
CN111443940A (zh) * | 2020-05-08 | 2020-07-24 | 南京大学 | 一种基于DevOps的完整软件生命周期管理方法及平台 |
CN111556023A (zh) * | 2020-03-31 | 2020-08-18 | 紫光云技术有限公司 | 一种基于权限的内容可配置方法 |
CN112035182A (zh) * | 2020-08-31 | 2020-12-04 | 浪潮云信息技术股份公司 | 一种基于kong的API网关监控方法及系统 |
CN112600931A (zh) * | 2020-12-22 | 2021-04-02 | 新华三云计算技术有限公司 | 一种api网关部署方法及装置 |
US11032160B1 (en) * | 2020-07-31 | 2021-06-08 | Boomi, Inc. | Serverless elastic scale API gateway management system and method of an API service control plane system |
CN113259880A (zh) * | 2021-05-20 | 2021-08-13 | 洛阳轴承研究所有限公司 | 一种基于kong网关的微服务安全计费方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111629A (zh) * | 2018-01-19 | 2018-06-01 | 京东方科技集团股份有限公司 | 应用编程接口服务装置和应用编程接口服务系统 |
US11457004B2 (en) * | 2019-12-03 | 2022-09-27 | Aetna Inc. | Hybrid cloud application programming interface management platform |
US11611436B2 (en) * | 2020-04-24 | 2023-03-21 | Netapp, Inc. | Management services API gateway |
-
2021
- 2021-11-30 CN CN202111448272.4A patent/CN114221949B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10148493B1 (en) * | 2015-06-08 | 2018-12-04 | Infoblox Inc. | API gateway for network policy and configuration management with public cloud |
WO2020134329A1 (zh) * | 2018-12-29 | 2020-07-02 | 中兴通讯股份有限公司 | 一种网关业务实现方法、控制装置和网关 |
CN111371679A (zh) * | 2020-03-09 | 2020-07-03 | 山东汇贸电子口岸有限公司 | 一种基于kubernetes与Kong实现API网关的方法 |
CN111556023A (zh) * | 2020-03-31 | 2020-08-18 | 紫光云技术有限公司 | 一种基于权限的内容可配置方法 |
CN111443940A (zh) * | 2020-05-08 | 2020-07-24 | 南京大学 | 一种基于DevOps的完整软件生命周期管理方法及平台 |
US11032160B1 (en) * | 2020-07-31 | 2021-06-08 | Boomi, Inc. | Serverless elastic scale API gateway management system and method of an API service control plane system |
CN112035182A (zh) * | 2020-08-31 | 2020-12-04 | 浪潮云信息技术股份公司 | 一种基于kong的API网关监控方法及系统 |
CN112600931A (zh) * | 2020-12-22 | 2021-04-02 | 新华三云计算技术有限公司 | 一种api网关部署方法及装置 |
CN113259880A (zh) * | 2021-05-20 | 2021-08-13 | 洛阳轴承研究所有限公司 | 一种基于kong网关的微服务安全计费方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114221949A (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007512B2 (en) | Bug clearing house | |
CN107924411A (zh) | 事务系统中ui状态的恢复 | |
US11379429B1 (en) | Computer-based systems configured for permission events management on a blockchain and methods of use thereof | |
US20220276878A1 (en) | Method and apparatus for generating image file and computer-readable storage medium | |
US20210226929A1 (en) | Techniques for transferring data across air gaps | |
US11748081B2 (en) | System and method for application release orchestration and deployment | |
CN107438067A (zh) | 一种基于mesos容器云平台的多租户构建方法及系统 | |
CN111694743A (zh) | 业务系统的检测方法及装置 | |
CN114221949B (zh) | 一种适用于公有云平台的api网关实现方法 | |
CN114338684A (zh) | 一种能源管理系统及方法 | |
CN117850771A (zh) | web服务的业务应用开发平台、方法及存储介质 | |
CN114895879B (zh) | 管理系统设计方案确定方法、装置、设备及存储介质 | |
CN105246095A (zh) | 一种移动通信业务的应用终端 | |
CN110677469B (zh) | 一种证券灾备系统及灾备实现方法 | |
CN111159274A (zh) | 一种基于税控的发票业务前置系统 | |
Song et al. | Design and Implementation of Bank Smart Counter System Based on SSM Framework | |
Correia | Service Monitoring for a Mobile Money System | |
CN117614943A (zh) | 互联网应用管理方法及系统 | |
CN113947505A (zh) | 物业管理系统及方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |