第 154 章 YAML DSL
Since Camel 3.9
YAML DSL 提供了在 YAML 中定义 Camel 路由、路由模板和 REST DSL 配置的功能。
154.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 名称。
作为一般规则,每个步骤都提供相关定义声明的所有参数,但有一些细微差异/增强功能:
- 输出感知步骤
当交换与 过滤器表达式
或由 分割
表达式生成的项目匹配时,一些步骤(如过滤和分割 )具有自己的管道。您可以在 steps
字段中定义这些管道:
filter: expression: simple: "${in.header.continue} == true" steps: - to: uri: "log:filtered"
- 表达式 Aware Steps
一些 EIP (如 filter
和 split
)支持通过 expression 字段定义 表达式
:
explicit Expression 字段
filter: expression: simple: "${in.header.continue} == true"
要使 DSL 更详细,您可以省略 expression
字段。
隐式 Expression 字段
filter: simple: "${in.header.continue} == true"
通常,可以内联定义表达式,例如在上述示例中,但如果您需要提供更多信息,您可以"取消滚动"表达式定义并配置表达式定义的任何单个参数。
全表达式定义
filter: tokenize: token: "<" end-token: ">"
- 数据格式感知步骤
EIP marshal
和 unmarshal
支持数据格式的定义:
marshal: json: library: Gson
如果要使用 data-format 的默认设置,您需要放置一个空块作为数据格式参数,如 json: {}