第 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"

其中,

1
支持路由入口点,默认为 来自rest
2
处理步骤
注意

每个步骤代表一个 YAML 映射,它只有一个条目,其中字段名称是 EIP 名称。

作为常规规则,每个步骤提供相关定义声明的所有参数,但有一些次要区别/授权:

  • 输出 Aware Steps

当交换与 过滤器 表达式或 分割表达式匹配时,一些步骤(如 filter 和 split )具有自己的管道。您可以在 steps 字段中定义这些管道:

filter:
  expression:
    simple: "${in.header.continue} == true"
    steps:
      - to:
          uri: "log:filtered"
  • 表达式感知步骤

有些 EIP (如 filtersplit )支持通过 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 marshalunmarshal 支持数据格式的定义:

marshal:
  json:
    library: Gson
注意

如果要使用 data-format 的默认设置,则需要将空块作为数据格式参数放置,如 json: {}

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.