docs/docs/rules/rule.md
Whistle 通过简洁的规则配置来修改请求和响应,每条规则都遵循相同的基础语法结构。
pattern operation [lineProps...] [filters...]
每条规则由以下四部分组成:
| 组成部分 | 是否必填 | 描述 |
|---|---|---|
| pattern | 是 | 匹配请求 URL 的表达式,详细文档:pattern |
| operation | 是 | 操作指令,格式为 protocol://value,详细文档:operation |
| lineProps | 否 | 附加配置,仅对当前规则生效,详细文档:lineProps |
| filters | 否 | 过滤条件,用于精确控制规则生效场景,详细文档:filters |
单条规则可以包含多个操作指令,实现复杂的功能组合。
语法:
pattern operation1 operation2 ... [includeFilter://pattern1 ... excludeFilter://patternN ...]
示例:
www.example.com/* file:///static-files cache://3600 resCors://*
说明:
当 operation 和第一个 pattern 不同时为 URL 或域名格式时,可以调换位置。
语法:
operation pattern1 pattern2 ... [includeFilter://pattern1 ... excludeFilter://patternN ...]
示例:
# 标准写法
www.example.com proxy://127.0.0.1:8080
# 位置调换写法
proxy://127.0.0.1:8080 www.example.com api.example.com
限制条件:
operation和第一个pattern不能同时为以下格式:
https://test.com/path//test.com/pathtest.com/pathtest.com
适用场景:
使用代码块实现多行配置,提高复杂规则的可读性。
语法:
line`
operation
pattern1
pattern2
...
[includeFilter://pattern1
...
excludeFilter://patternN
...]
`
示例:
line`
proxy://127.0.0.1:8080
www.example.com
api.example.com
static.example.com
includeFilter://m:GET
excludeFilter:///admin/
`
特性:
等价转换: 上述换行配置等价于:
proxy://127.0.0.1:8080 www.example.com api.example.com static.example.com includeFilter://m:GET excludeFilter:///admin/
lineProps://important 提升重要规则优先级# 注释暂时禁用规则进行测试