第 94 章 YAML DSL
从 Camel 3.9 开始
YAML DSL 提供了在 YAML 中定义 Camel 路由、路由模板和 REST DSL 配置的功能。
94.1. 定义路由
路由是定义的一组元素,如下所示:
- from: 1 uri: "direct:start" steps: 2 - filter: expression: simple: "${in.header.continue} == true" steps: - to: uri: "log:filtered" - to: uri: "log:original"
其中,
每个步骤代表一个 YAML 映射,它只有一个条目,其中字段名称是 EIP 名称。
作为常规规则,每个步骤提供相关定义声明的所有参数,但有一些次要区别/授权:
- 输出 Aware Steps
当交换与 过滤器
表达式或
分割表达式匹配时,一些步骤(如 filter 和 split )具有自己的管道。您可以在 steps
字段中定义这些管道:
filter: expression: simple: "${in.header.continue} == true" steps: - to: uri: "log:filtered"
- 表达式感知步骤
有些 EIP (如 filter
和 split
)支持通过 expression 字段定义 表达式
:
explicit Expression 字段
filter: expression: simple: "${in.header.continue} == true"
要使 DSL 更详细,您可以省略 expression
字段。
隐式表达式字段
filter: simple: "${in.header.continue} == true"
通常,可以内联定义表达式,如上例中所示,但是如果您需要提供更多信息,您可以"取消注册"表达式定义并配置表达式定义并配置表达式定义。
完整的表达式定义
filter: tokenize: token: "<" end-token: ">"
- 数据格式 Aware 步骤
EIP marshal
和 unmarshal
支持数据格式的定义:
marshal: json: library: Gson
如果要使用 data-format 的默认设置,则需要将空块作为数据格式参数放置,如 json: {}