操作场景
本文介绍如何将 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
。