云原生智能网关 进行 URL 重写

这篇说说如何将API发布到腾讯云原生网关,并通过Service和Route配置或Request Transformer插件实现三种URL重写场景:前缀改写、完整改写和部分改写。 前缀改写:通过Service和Route配置,设置Path并开启Strip Path实现URL前缀替换。 完整改写:使用Request Transformer插件配置replace.uri,将请求路径完全替换为目标路径。 部分改写:通过正则捕。

相关产品
云原生智能网关 产品页,含版本规格、价格与购买入口。

一、操作场景

这篇说说如何将 API 发布到 云原生网关 上,并实现 URL 重写。

二、前置条件

1. 已购买网关实例,详情请参见 新建网关。

2. 登录 TSF 控制台。

3. 在左侧导航栏选择云原生网关 ,单击目标实例进入实例详情。

4. 在基础信息页面,单击 Konga 控制台标签查看管理控制台登录方式。

5. 访问 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。

六、相关参考

Kong 插件文档

赞 (0)
上一篇 4天前
下一篇 4天前