进行 URL 重写

最近更新时间:2023-08-31 15:31:52

我的收藏

操作场景

本文介绍如何将 API 发布到 Kong 网关上,并实现 URL 重写。

前置条件

1. 已购买 Kong 网关实例,详情请参见 网关实例管理
2. 进入 TSE 控制台,并找到需要的实例。
3. 进入实例详情页后,在 Konga 控制台页面查看管理控制台登录方式。



4. 访问 Konga 管理控制台。




操作步骤

场景一:通过 Service 和 Route 配置实现 URL 前缀改写

示例 原始 API 调用 URL 为 http://<backend>/anything/api/<sub_path> 发布到 Kong 网关后,调用 URL 改写为 http://<kong>/new/path/<sub_path>
1. 单击 ADD NEW SERVICE创建 Service。

填写相应信息并设置 Path 为 /anything/api


2. 单击 ADD ROUTE 在该 Service 上创建 Route,

设置 Path 为 /new/path,且开启 Strip Path 选项(默认开启)。


3. 请求 http://<kong>/new/path/user 时,后端接收到的请求路径为 /anything/api/user

场景二:通过 Request Transformer 插件实现完整 URL 改写

示例 原始 API 调用 URL 为 http://<backend>/anything/user_list 发布到 Kong 网关后,调用 URL 改写为 http://<kong>/users
1. 创建 Service,Path 可以任意设置。
2. 在该 Service 上创建 Route,设置 Path 为 /users
3. 单击 ADD PLUGIN 新建插件。

在该 Route 上创建 Request Transformer 插件。

并配置 replace.uri/anything/user_list,该路径为后端接收到的实际请求路径。


4. 请求 Route 后,后端接收到的请求路径为 /anything/path(原始 Service Path 配置被覆盖)。

场景三:通过 Request Transformer 插件实现部分 URL 改写

示例 原始 API 调用 URL 为 http://<backend>/anything/<user_id>/get 发布到 Kong 网关后,调用 URL 改写为 http://<kong>/user/<user_id>
1. 创建 Service,Path 可以任意设置。
2. 在该 Service 上创建 Route,设置 Path 为 /user/(?<user_id>\\w+)


3. 在该 Route 上创建 Request Transformer 插件。

并配置 replace.uri/anything/$(uri_captures['user_id'])/get,该路径为后端接收到的实际请求路径。


4. 请求 http://<kong>/user/user_a 后,后端接收到的请求路径为 /anything/user_a/get

相关参考