Skip to content

配置优先级

request-guard 提供多个配置层级,从低到高依次覆盖。理解优先级是用好规则系统的关键。

完整优先级链

能力内置默认值
  < duplicate(options) / retry(options)   ← 能力工厂参数
    < defaults                            ← 全局默认配置
      < rules                             ← 规则匹配(首个命中项生效)
        < 请求级 requestGuard              ← 优先级最高

简化记忆:

请求级配置(最高) > 规则匹配 > 全局默认(最低)

各层级的职责

层级写在哪适合放什么
能力工厂capabilities: [duplicate()]声明安装哪些能力(按需入口)
全局默认defaults: { duplicate: {...} }项目通用的默认参数
规则匹配rules: [{ method, duplicate }]按 URL / 方法批量声明治理策略
请求级config.requestGuard单个请求的特殊处理

规则匹配:首个命中生效

rules 数组按声明顺序匹配,首个命中项生效,后续规则不再扫描。所以更具体的规则应该写在更前面。

请求级配置不受排除方法限制

注意

excludeMethods 只影响规则匹配全局默认。请求级 config.requestGuard 里的显式配置不受 excludeMethods 限制,总会生效。

这意味着即使某方法被默认排除(如 retry 默认排除 POST),你仍可以在请求级显式开启它。

详见 规则系统请求级配置

基于 MIT 许可发布