规则链初始化校验器切面
# 规则链初始化校验器
规则链初始化校验器是一个重要的组件,用于在规则链启动之前验证其结构和配置是否符合相关规则。以下是对规则链初始化校验器的详细介绍。
# 功能概述
# 子规则链不允许创建 Endpoint
组件
- 校验规则:如果一个子规则链(即
Root
属性为false
的规则链)中存在Endpoint
组件,会触发错误。 - 错误提示:
ErrNotAllowEndpointNode
表示子规则链不允许创建Endpoint
组件。
# 环检测
- 校验规则:规则链中不允许节点形成环。如果检测到环,会触发错误。(通过
config.allowCycle
开关控制是否允许形成环。默认为false,表示不允许形成环。) - 错误提示:
ErrCycleDetected
表示在规则链中检测到环引用。
# 自定义校验规则
# 创建校验函数
用户可以创建自定义校验函数,定义符合以下签名的函数:
func(config types.Config, def *types.RuleChain) error
1
其中:
config
是规则链的配置信息。def
是规则链的定义。
# 注册校验规则
使用 Rules.AddRule()
方法将自定义校验函数注册到规则校验器中。例如:
Rules.AddRule(func(config types.Config, def *types.RuleChain) error {
if def != nil && len(def.Metadata.Nodes) > 10 {
return errors.New("the rule chain cannot contain more than 10 nodes")
}
return nil
})
1
2
3
4
5
6
2
3
4
5
6
在 GitHub 上编辑此页 (opens new window)
上次更新: 2025/03/01, 07:42:36