# 概述

路由管理功能用于维护网关的路由规则,支持服务编排、服务发现、反向代理三种路由类型,支持插件配置。下面介绍路由管理的操作。

# 路由列表

菜单位置:网关管理 > 路由管理。点击菜单后进入路由列表页面,如图所示。

manager_api_auth_list_query

# 新增路由

点击 新增 按钮弹出新增窗口,如图所示。

manager_api_auth_add_1

manager_api_auth_add_2

网关分组:选取路由关联的网关分组,只有属于所选分组的网关实例路由规则才会生效,必选;

路由类型:可选服务编排|服务发现|反向代理,当选择 服务编排 时,请求转发给服务编排接口;当选择 服务发现 时,请求转发给注册中心注册的服务;当选择 反向代理 时,请求转发给后端服务器。

访问:可选允许|禁止,必选;

后端服务名:请求转发的后端服务名称,当 路由类型 选择 服务编排 时选择框展示服务编排的服务列表(更多详情请查看服务管理功能介绍),支持模糊查询,必选;当 路由类型 选择 服务发现 时选择框展示注册中心注册的服务,支持模糊查询,必选;当 路由类型 选择 反向代理 时,该选项隐藏,无需填写;

后端服务器:当 路由类型 选择 反向代理 时显示该选项,请求转发到的目标服务器地址,有多台服务器时网关会轮询调用,必填;

后端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;

点击 添加插件 按钮为路由添加插件,如图所示。

manager_api_auth_add_3

配置插件路由级别的自定义配置,表单界面来自于插件的表单定义,更多详情请查看扩展管理功能介绍。

manager_api_auth_add_4

配置完成后点击 保存 按钮保存路由规则。

manager_api_auth_add_5

# 编辑路由

点击 编辑 按钮弹出编辑窗口,如图所示。

manager_api_auth_edit_1

manager_api_auth_edit_2

# 删除路由

点击 删除 按钮弹出删除确认窗口,如图所示。

manager_api_auth_delete_1

manager_api_auth_delete_2