pub struct Route {
pub name: String,
pub host: String,
pub path: String,
pub match_path: String,
pub service: String,
pub methods: Vec<String>,
pub header: BTreeMap<String, String>,
pub query: BTreeMap<String, String>,
pub pre_filters: Vec<ConfiguredPlugin>,
pub post_filters: Vec<ConfiguredPlugin>,
pub is_auth: bool,
pub auth_white_list: Vec<String>,
}Fields§
§name: String名称
host: StringHost,可选,* 代表不限制。 支持泛域名,格式为 *.example.com,通配符只能出现在域名开头,需要在控制台校验。
path: String路径,支持通配符,必须以“/“开头,全局唯一。 同一域名下的路径不能存在冲突,如/api/*和/api/**就是冲突的路径,在控制台保存时需要校验。 所有为 * 的域名下的路径也不能冲突。
match_path: String转换后的匹配路径。
由于路径匹配组件使用的是matchit,格式为/xxx/{*any},
它不符合常用的/api/**的格式,而path储存的是常用格式,
所以这里需要做一次转换。
service: String需要路由到的服务ID
methods: Vec<String>请求方法:get | post | put | delete | patch | options 支持配置多个。 不参与路由唯一性验证。
header: BTreeMap<String, String>header匹配条件 不参与路由唯一性验证。
query: BTreeMap<String, String>query匹配条件 不参与路由唯一性验证。
pre_filters: Vec<ConfiguredPlugin>前置过滤器插件,在请求阶段执行,多个按顺序串联执行
post_filters: Vec<ConfiguredPlugin>后置过滤器插件,在响应阶段执行,多个按顺序串联执行
is_auth: bool是否开启鉴权
备注:网关本身只支持API Key鉴权即可,如果需要其他类型的鉴权方式,可将此处鉴权关闭,然后通过插件实现。 考虑提供一些内置的鉴权插件。
auth_white_list: Vec<String>鉴权路径白名单
Implementations§
Source§impl Route
impl Route
pub fn get_service(&self) -> &String
Sourcepub fn build_path(&self, path: &str) -> String
pub fn build_path(&self, path: &str) -> String
构建请求路径
- path 原始的请求路径
能执行到这里,说明已经匹配到该路由了。
(废弃,由插件实现)根据strip_prefix决定是否移除前缀
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Route
impl<'de> Deserialize<'de> for Route
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Route
impl RefUnwindSafe for Route
impl Send for Route
impl Sync for Route
impl Unpin for Route
impl UnwindSafe for Route
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more