CN114221949B - 一种适用于公有云平台的api网关实现方法 - Google Patents

一种适用于公有云平台的api网关实现方法 Download PDF

Info

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
Application number
CN202111448272.4A
Other languages
English (en)
Other versions
CN114221949A (zh
Inventor
冀天宇
谢水庚
刘鹰
刘明
刘强
刘威
邓建红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Casicloud Co ltd
Original Assignee
Beijing Casicloud Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Casicloud Co ltd filed Critical Beijing Casicloud Co ltd
Priority to CN202111448272.4A priority Critical patent/CN114221949B/zh
Publication of CN114221949A publication Critical patent/CN114221949A/zh
Application granted granted Critical
Publication of CN114221949B publication Critical patent/CN114221949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols 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 网关(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的统计信息。
CN202111448272.4A 2021-11-30 2021-11-30 一种适用于公有云平台的api网关实现方法 Active CN114221949B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115037577A (zh) * 2022-06-27 2022-09-09 江苏安超云软件有限公司 智能化网关服务管理平台

Citations (9)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
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