CN110753127A - 基于Kong的API网关实现请求参数转换的方法 - Google Patents
基于Kong的API网关实现请求参数转换的方法 Download PDFInfo
- Publication number
- CN110753127A CN110753127A CN201911034761.8A CN201911034761A CN110753127A CN 110753127 A CN110753127 A CN 110753127A CN 201911034761 A CN201911034761 A CN 201911034761A CN 110753127 A CN110753127 A CN 110753127A
- Authority
- CN
- China
- Prior art keywords
- request
- plug
- gateway
- message
- conversion
- 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.)
- Pending
Links
Images
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]
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种基于Kong的API网关实现请求参数转换的方法,属于API网关技术领域,客户端将请求报文发送给API网关,API网关接收报文,根据用户制定的参数映射规则,修改报文中参数键值对的位置后,再将报文转发到上游服务器,从而实现请求参数转换的功能。
Description
技术领域
本发明涉及API网关技术,尤其涉及一种基于Kong的API网关实现请求参数转换的方法。
背景技术
API经济是信息网络化时代产生的一种崭新的经济现象。API网关(API Gateway)是同微服务架构一起兴起的一种架构模式,企业可以通过API网关托管API,实现API的开放与使用。API网关在上层抽象出各业务系统需要的通用功能,如请求参数转换,限流,鉴权,黑白名单等,将这些通用功能从业务系统中解耦,实现一个统一的网关出入口进行API管理,从而解决微服务架构过于分散的问题,实现API托管的功能。
具体的,发明人在实现本发明时发现,实现API网关中的请求转换的现有技术中,存在以下问题:
1无法实现对请求URI中参数的转换
2无法实现对请求报文中请求体中参数的转换。
发明内容
本发明提出了一种基于Kong的API网关实现请求参数转换的方法,解决现有技术中存在的两个问题。本发明通过网关插件对请求URI的正则表达式配置,对客户端实际请求的URI进行模式匹配,将匹配到的URI参数替换到待转换的参数位置,实现对请求URI中的参数转换。本发明通过一种Json配置规范,将待转换参数递归式的生成Json格式数据,得到新的请求体,实现对请求报文中请求体中参数的转换。
本发明的技术方案是:
本发明提供了一种基于Kong的API网关实现请求参数转换的方法,应用于API网关,客户端将请求报文发送给API网关,API网关接收报文,根据用户制定的参数映射规则,修改报文中参数键值对的位置后,再将报文转发到上游服务器,从而实现请求参数转换的功能。
进一步的,
请求参数转换的映射关系体现在请求转换插件的配置当中,对请求URI中进行参数转换时,请求的URI与网关路由的正则表达式相匹配,对请求体中的参数转换配置使用给定规则模式,所述请求参数转换的映射关系应与插件的配置相对应,所述请求URI应与网关中路由的正则表达式相对应,所述请求体转换应符合给定的嵌套规则。
进一步的,
包括如下步骤:
客户端向网关发送HTTP请求;
网关接收客户端发送的HTTP请求;
网关判断本地是否存在与请求对应的路由;
如果本地不存在对应路由,返回错误信息给所述客户端;
请求转换插件获取插件配置规则;
插件解析客户端的HTTP请求报文;
插件获取请求报文的请求头参数,Query参数;
插件提取请求URI中的参数;
插件按照配置规则,对报文参数做转换;
插件生成新的请求报文;
网关将新的报文转发到上游服务器;
将上游服务器返回的报文返回给客户端。
进一步的,
所述API网关基于Kong框架,Kong框架基于OpenResty框架,所述框架对请求的处理分为一个以上阶段,插件在请求处理的access_by_lua阶段,实现对请求报文的解析和重新生成。
进一步的,
所述网关插件的配置采用Kong架构的yaml配置文件。
进一步的,
所述Kong架构使用无数据库的声明式配置模式。
进一步的,
所述请求体的转换内容为Json格式的数据。
进一步的,
所述的Json格式的数据的定义基于Json架构草案4的规范,并存在一定的限制条件,仅支持元素属性为Object类型和元素属性为Array类型的元素相互嵌套的方案。
本发明的有益效果是
与现有技术相比,本发明提供的基于Kong的API网关实现请求参数转换的方法,达到如下有益效果:
第一,实现对请求URI中参数的提取和转换
第二,实现对请求报文中请求体中参数的转换
第三,配置简单灵活,易于扩展。
附图说明
图1是本发明的工作流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的一种基于Kong的API网关实现请求参数转换的方法,应用于API网关,请求参数转换的映射关系体现在请求转换插件的配置当中,对请求URI中进行参数转换时,请求的URI与网关路由的正则表达式相匹配,对请求体中的参数转换配置使用给定规则模式,所述请求参数转换的映射关系应与插件的配置相对应,所述请求URI应与网关中路由的正则表达式相对应,所述请求体转换应符合给定的嵌套规则,包括:
客户端向网关发送HTTP请求;
网关接收客户端发送的HTTP请求;
网关判断本地是否存在与请求对应的路由;
如果本地不存在对应路由,返回错误信息给所述客户端;
请求转换插件获取插件配置规则;
插件解析客户端的HTTP请求报文;
插件获取请求报文的请求头参数,Query参数;
插件提取请求URI中的参数;
插件按照配置规则,对报文参数做转换;
插件生成新的请求报文;
网关将新的报文转发到上游服务器;
将上游服务器返回的报文返回给客户端。
所述API网关基于Kong框架。
所述的Kong框架基于OpenResty框架,所述框架对请求的处理分为多个阶段,插件在请求处理的access_by_lua阶段,实现对请求报文的解析和重新生成。
所述网关插件的配置采用Kong架构的yaml配置文件。
所述Kong架构使用无数据库的声明式配置模式。
所述请求体的转换内容为Json格式的数据。
所述的Json格式的数据的定义基于Json架构草案4的规范,并存在一定的限制条件,仅支持元素属性为Object类型和元素属性为Array类型的元素相互嵌套的方案。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.基于Kong的API网关实现请求参数转换的方法,其特征在于,
客户端将请求报文发送给API网关,API网关接收报文,根据用户制定的参数映射规则,修改报文中参数键值对的位置后,再将报文转发到上游服务器,从而实现请求参数转换的功能。
2.根据权利要求1所述的方法,其特征在于,
请求参数转换的映射关系体现在请求转换插件的配置当中,对请求URI中进行参数转换时,请求的URI与网关路由的正则表达式相匹配,对请求体中的参数转换配置使用给定规则模式,所述请求参数转换的映射关系应与插件的配置相对应,所述请求URI应与网关中路由的正则表达式相对应,所述请求体转换应符合给定的嵌套规则。
3.根据权利要求2所述的方法,其特征在于,
包括如下步骤:
客户端向网关发送HTTP请求;
网关接收客户端发送的HTTP请求;
网关判断本地是否存在与请求对应的路由;
如果本地不存在对应路由,返回错误信息给所述客户端;
请求转换插件获取插件配置规则;
插件解析客户端的HTTP请求报文;
插件获取请求报文的请求头参数,Query参数;
插件提取请求URI中的参数;
插件按照配置规则,对报文参数做转换;
插件生成新的请求报文;
网关将新的报文转发到上游服务器;
将上游服务器返回的报文返回给客户端。
4.根据权利要求3所述的方法,其特征在于,
所述API网关基于Kong框架,Kong框架基于OpenResty框架,所述框架对请求的处理分为一个以上阶段,插件在请求处理的access_by_lua阶段,实现对请求报文的解析和重新生成。
5.根据权利要求4所述的方法,其特征在于,
所述网关插件的配置采用Kong架构的yaml配置文件。
6.根据权利要求4所述的方法,其特征在于,
所述Kong架构使用无数据库的声明式配置模式。
7.根据权利要求2所述的方法,其特征在于,
所述请求体的转换内容为Json格式的数据。
8.根据权利要求7所述的方法,其特征在于,
所述的Json格式的数据的定义基于Json架构草案4的规范,并存在一定的限制条件,仅支持元素属性为Object类型和元素属性为Array类型的元素相互嵌套的方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911034761.8A CN110753127A (zh) | 2019-10-29 | 2019-10-29 | 基于Kong的API网关实现请求参数转换的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911034761.8A CN110753127A (zh) | 2019-10-29 | 2019-10-29 | 基于Kong的API网关实现请求参数转换的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110753127A true CN110753127A (zh) | 2020-02-04 |
Family
ID=69280641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911034761.8A Pending CN110753127A (zh) | 2019-10-29 | 2019-10-29 | 基于Kong的API网关实现请求参数转换的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110753127A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343293A (zh) * | 2020-02-10 | 2020-06-26 | 北京首汽智行科技有限公司 | 一种基于Kong网关获取客户端IP的方法 |
CN111385146A (zh) * | 2020-03-05 | 2020-07-07 | 山东汇贸电子口岸有限公司 | 一种基于Kong的API网关路由实体配置方法及系统 |
CN112818325A (zh) * | 2021-01-30 | 2021-05-18 | 浪潮云信息技术股份公司 | 一种基于应用实现api网关独立鉴权的方法 |
CN113032089A (zh) * | 2021-01-18 | 2021-06-25 | 中电普信(北京)科技发展有限公司 | 一种基于api网关的分布式仿真服务构建方法 |
CN113114562A (zh) * | 2021-03-04 | 2021-07-13 | 上海赛可出行科技服务有限公司 | 一种基于开放平台的参数可配置的网关设计方法 |
CN113596151A (zh) * | 2021-07-28 | 2021-11-02 | 杭州数梦工场科技有限公司 | 插件管理方法、装置、数据处理方法及装置 |
CN113766030A (zh) * | 2021-09-13 | 2021-12-07 | 城云科技(中国)有限公司 | 接口常量参数自动入参方法及装置 |
CN114143261A (zh) * | 2021-12-01 | 2022-03-04 | 浪潮云信息技术股份公司 | 一种api网关动态路由后端地址的方法及系统 |
CN114422206A (zh) * | 2021-12-29 | 2022-04-29 | 北京致远互联软件股份有限公司 | 一种java web动态配置安全防御方法 |
CN114500517A (zh) * | 2022-03-14 | 2022-05-13 | 北京计算机技术及应用研究所 | 一种基于api网关实现控制文件上传的方法 |
CN115190011A (zh) * | 2022-07-05 | 2022-10-14 | 中电金信软件有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105991564A (zh) * | 2015-02-05 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 报文处理方法及装置 |
CN108769017A (zh) * | 2018-05-29 | 2018-11-06 | 杭州字符串科技有限公司 | 一种数据通信方法及装置 |
CN108989356A (zh) * | 2018-09-10 | 2018-12-11 | 四川长虹电器股份有限公司 | 一种api网关实现协议转换的方法 |
CN109167724A (zh) * | 2018-09-10 | 2019-01-08 | 四川长虹电器股份有限公司 | 一种api网关中实现数据预处理的方法 |
CN109460223A (zh) * | 2018-11-14 | 2019-03-12 | 沈阳林科信息技术有限公司 | 一种api网关管理系统及其方法 |
CN110213290A (zh) * | 2019-06-14 | 2019-09-06 | 无锡华云数据技术服务有限公司 | 数据获取方法、api网关以及存储介质 |
-
2019
- 2019-10-29 CN CN201911034761.8A patent/CN110753127A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105991564A (zh) * | 2015-02-05 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 报文处理方法及装置 |
CN108769017A (zh) * | 2018-05-29 | 2018-11-06 | 杭州字符串科技有限公司 | 一种数据通信方法及装置 |
CN108989356A (zh) * | 2018-09-10 | 2018-12-11 | 四川长虹电器股份有限公司 | 一种api网关实现协议转换的方法 |
CN109167724A (zh) * | 2018-09-10 | 2019-01-08 | 四川长虹电器股份有限公司 | 一种api网关中实现数据预处理的方法 |
CN109460223A (zh) * | 2018-11-14 | 2019-03-12 | 沈阳林科信息技术有限公司 | 一种api网关管理系统及其方法 |
CN110213290A (zh) * | 2019-06-14 | 2019-09-06 | 无锡华云数据技术服务有限公司 | 数据获取方法、api网关以及存储介质 |
Non-Patent Citations (2)
Title |
---|
KONG: "kong request transformer plugin,https://github.com/Kong/kong-plugin-request-transformer/blob/1.2.3/README.md", 《GITHUB》 * |
QIANYUGANG: "Request Transformer请求变更插件,https://github.com/qianyugang/kong-docs-cn/blob/master/HUB/request-transformer.md", 《GITHUB》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343293A (zh) * | 2020-02-10 | 2020-06-26 | 北京首汽智行科技有限公司 | 一种基于Kong网关获取客户端IP的方法 |
CN111385146A (zh) * | 2020-03-05 | 2020-07-07 | 山东汇贸电子口岸有限公司 | 一种基于Kong的API网关路由实体配置方法及系统 |
CN113032089B (zh) * | 2021-01-18 | 2023-02-28 | 中电普信(北京)科技发展有限公司 | 一种基于api网关的分布式仿真服务构建方法 |
CN113032089A (zh) * | 2021-01-18 | 2021-06-25 | 中电普信(北京)科技发展有限公司 | 一种基于api网关的分布式仿真服务构建方法 |
CN112818325A (zh) * | 2021-01-30 | 2021-05-18 | 浪潮云信息技术股份公司 | 一种基于应用实现api网关独立鉴权的方法 |
CN113114562A (zh) * | 2021-03-04 | 2021-07-13 | 上海赛可出行科技服务有限公司 | 一种基于开放平台的参数可配置的网关设计方法 |
CN113596151A (zh) * | 2021-07-28 | 2021-11-02 | 杭州数梦工场科技有限公司 | 插件管理方法、装置、数据处理方法及装置 |
CN113766030A (zh) * | 2021-09-13 | 2021-12-07 | 城云科技(中国)有限公司 | 接口常量参数自动入参方法及装置 |
CN114143261A (zh) * | 2021-12-01 | 2022-03-04 | 浪潮云信息技术股份公司 | 一种api网关动态路由后端地址的方法及系统 |
CN114422206A (zh) * | 2021-12-29 | 2022-04-29 | 北京致远互联软件股份有限公司 | 一种java web动态配置安全防御方法 |
CN114422206B (zh) * | 2021-12-29 | 2024-02-02 | 北京致远互联软件股份有限公司 | 一种java web动态配置安全防御方法 |
CN114500517A (zh) * | 2022-03-14 | 2022-05-13 | 北京计算机技术及应用研究所 | 一种基于api网关实现控制文件上传的方法 |
CN115190011A (zh) * | 2022-07-05 | 2022-10-14 | 中电金信软件有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
CN115190011B (zh) * | 2022-07-05 | 2024-02-27 | 中电金信软件有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110753127A (zh) | 基于Kong的API网关实现请求参数转换的方法 | |
CN107507005B (zh) | 一种基于联盟链的链外数据访问方法和系统 | |
US11394805B1 (en) | Automatic discovery of API information | |
US7603474B2 (en) | Efficient endpoint matching using a header-to-bit conversion table | |
CN110493304B (zh) | 边缘计算系统以及交易系统 | |
US10706062B2 (en) | Method and system for exchanging data from a big data source to a big data target corresponding to components of the big data source | |
EP3151589A1 (en) | Method and group server for operating group resource | |
CN104468838B (zh) | 一种P2P网路和发布订阅模式的Web服务选择方法 | |
CN105493046A (zh) | 面向服务的架构 | |
US20130132547A1 (en) | Apparatus and Method for Address Book Automation Over a Trust Network | |
CN105518695A (zh) | 实时策略分发 | |
KR102295593B1 (ko) | 인증 문서를 자동으로 생성하는 기법 | |
JP2019193254A (ja) | セマンティックゲートウェイのモデリング方法及びセマンティックゲートウェイ | |
CN114567650B (zh) | 一种数据处理方法及物联网平台系统 | |
CN105493047A (zh) | 在数据交换层上合并多个系统树 | |
Díaz-Sánchez et al. | DNS/DANE collision-based distributed and dynamic authentication for microservices in IoT | |
WO2016074477A1 (zh) | 一种数据处理方法、设备、系统及计算机存储介质 | |
WO2015184879A1 (zh) | 物联网的终端拓扑管理服务方法、装置及系统 | |
Haroun et al. | A big data architecture for automotive applications: PSA group deployment experience | |
CN111614726A (zh) | 一种数据转发方法、集群系统及存储介质 | |
CN111901412A (zh) | 一种数据处理方法及计算机可读存储介质 | |
CN111385146A (zh) | 一种基于Kong的API网关路由实体配置方法及系统 | |
CN114793244A (zh) | 一种区块链的资源处理方法、装置、设备和介质 | |
JP2005143100A (ja) | モバイル機器からerpにアクセスする方法 | |
WO2015149530A1 (zh) | M2m应用服务方法、装置及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200204 |
|
RJ01 | Rejection of invention patent application after publication |