我们在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factory(路由断言工厂)读取并处理,转变为路由判断的条件。
简单来说:断言工厂的作用就是读取用户定义的断言条件,对请求作出判断
例如Path=/user/**是按照路径匹配,这个规则是由
名称 | 说明 | 示例 |
---|---|---|
After | 是某个时间点后的请求 | - After=2037-01-20T17:42:47.789-07:00[America/Denver] |
Before | 是某个时间点之前的请求 | - Before=2031-04-13T15:14:47.433+08:00[Asia/Shanghai] |
Between | 是某两个时间点之前的请求 | - Between=2037-01-20T17:42:47.789-07:00[America/Denver], 2037-01-21T17:42:47.789-07:00[America/Denver] |
Cookie | 请求必须包含某些cookie | - Cookie=chocolate, ch.p |
Header | 请求必须包含某些header | - Header=X-Request-Id, d+ |
Host | 请求必须是访问某个host(域名) | - Host=.somehost.org,.anotherhost.org |
Method | 请求方式必须是指定方式 | - Method=GET,POST |
Path | 请求路径必须符合指定规则 | - Path=/red/{segment},/blue/** |
Query | 请求参数必须包含指定参数 | - Query=name, Jack或者- Query=name |
RemoteAddr | 请求者的ip必须是指定范围 | - RemoteAddr=192.168.1.1/24 |
Weight | 权重处理 |
我们只需要掌握Path这种路由工程就可以了。对于其他的如果需要用的话直接去看官方文档就好了,那里会给出例子,我们直接按照他给的格式来改就好了。
这里给出Spring的中文文档网址:
Spring Cloud Gateway 中文文档 (springdoc.cn)https://springdoc.cn/spring-cloud-gateway/#after 例如:如果我们设置如下断言规则时,表示
- 只要路径时以/order开头的都可以
- 只要在2017年1月20日之后才可以访问
predicates: - Path=/order/** - After=2017-01-20T17:42:47.789-07:00[America/Denver]