第 154 章 YAML DSL
Since Camel 3.9
YAML DSL 提供了在 YAML 中定义 Camel 路由、路由模板和 REST DSL 配置的功能。
154.1. 定义路由 复制链接链接已复制到粘贴板!
路由是定义的元素集合,如下所示:
- from:
uri: "direct:start"
steps:
- 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: {}