腾讯云微服务引擎 TSE 请求路由 - 进行 URL 重写
文档简介:
操作场景:
本文介绍如何将 API 发布到 Kong 网关上,并实现 URL 重写。
操作场景
本文介绍如何将 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。
相关参考
Kong 插件文档