# 概述
路由管理功能用于维护网关的路由规则,支持服务编排、服务发现、反向代理三种路由类型,支持插件配置。下面介绍路由管理的操作。
# 路由列表
菜单位置:网关管理 > 路由管理。点击菜单后进入路由列表页面,如图所示。
# 新增路由
点击 新增 按钮弹出新增窗口,如图所示。
网关分组:选取路由关联的网关分组,只有属于所选分组的网关实例路由规则才会生效,必选;
路由类型:可选服务编排|服务发现|反向代理,当选择 服务编排 时,请求转发给服务编排接口;当选择 服务发现 时,请求转发给注册中心注册的服务;当选择 反向代理 时,请求转发给后端服务器。
访问:可选允许|禁止,必选;
后端服务名:请求转发的后端服务名称,当 路由类型 选择 服务编排 时选择框展示服务编排的服务列表(更多详情请查看服务管理功能介绍),支持模糊查询,必选;当 路由类型 选择 服务发现 时选择框展示注册中心注册的服务,支持模糊查询,必选;当 路由类型 选择 反向代理 时,该选项隐藏,无需填写;
后端服务器:当 路由类型 选择 反向代理 时显示该选项,请求转发到的目标服务器地址,有多台服务器时网关会轮询调用,必填;
后端API路径:请求转发到的目标路径,支持精确匹配和引用前端API路径的变量,如:/a/b/c 或 /a/b/{$1},必填;
规则说明
API路径匹配规则说明:
? 匹配一个字符
* 匹配一级目录内的0个或多个字符
** 匹配0级或多级目录
{fizz:[a-z]+} 匹配正则表达式 [a-z]+,匹配结果赋值给名为fizz的路径变量
后端API路径可以通过{$1}-{$n}来获取前端API路径中通配符和正则表达式的值,正则表达式的值也可以通过命名变量来获取;
例子:
前端API路径: /x/{fizz:[a-z]+}/z/**
后端API路径: /x/{fizz}/{$2} 或 /x/{$1}/{$2}
此例中 {fizz} 和{$1} 取的都是前端API路径中正则表达式{fizz:[a-z]+}的值
当请求接口路径/x/y/z/a/b/c时,会匹配到上面的路由,{fizz} 和{$1}的值为y, {$2}的值为a/b/c
前端服务名:网关的请求路径格式为 http://{ip}:{port}/proxy/{service}{apiPath},前端服务名对应{service}段,必填;
前端API路径:网关的请求路径格式为 http://{ip}:{port}/proxy/{service}{apiPath},前端API路径对应{apiPath}段,支持精确匹配、前缀匹配和正则表达式,如:/x/y/z 或 /x/y/**;
规则说明
API路径匹配规则说明:
? 匹配一个字符
* 匹配一级目录内的0个或多个字符
** 匹配0级或多级目录
{fizz:[a-z]+} 匹配正则表达式 [a-z]+,匹配结果赋值给名为fizz的路径变量
后端API路径可以通过{$1}-{$n}来获取前端API路径中通配符和正则表达式的值,正则表达式的值也可以通过命名变量来获取;
例子:
前端API路径: /x/{fizz:[a-z]+}/z/**
后端API路径: /x/{fizz}/{$2} 或 /x/{$1}/{$2}
此例中 {fizz} 和{$1} 取的都是前端API路径中正则表达式{fizz:[a-z]+}的值
当请求接口路径/x/y/z/a/b/c时,会匹配到上面的路由,{fizz} 和{$1}的值为y, {$2}的值为a/b/c
调用方(appID):选取路由关联的appID,网关使用选取appID的信息进行鉴权,更多详情请查看appID管理功能介绍;
请求方法:请求的method类型,可选GET|POST;
点击 添加插件 按钮为路由添加插件,如图所示。
配置插件路由级别的自定义配置,表单界面来自于插件的表单定义,更多详情请查看扩展管理功能介绍。
配置完成后点击 保存 按钮保存路由规则。
# 编辑路由
点击 编辑 按钮弹出编辑窗口,如图所示。
# 删除路由
点击 删除 按钮弹出删除确认窗口,如图所示。