搜索

第 146 章 YAML DSL

download PDF

自 Camel 3.9 起

YAML DSL 提供了在 YAML 中定义 Camel 路由、路由模板和 REST DSL 配置的功能。

146.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
默认情况下,支持路由入口点和 其余 路由。
2
处理步骤
注意

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

作为常规规则,每个步骤都提供相关定义声明的所有参数,但有一些细微的区别/隔离:

  • output Aware 步骤

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

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

有些 EIP (如 filtersplit )支持通过 expression 字段定义 表达式

显式 Expression 字段

filter:
  expression:
    simple: "${in.header.continue} == true"

要使 DSL 不太详细,您可以省略 expression 字段。

隐式 Expression 字段

filter:
  simple: "${in.header.continue} == true"

通常,表达式可以定义内联,例如在上述示例中,但如果您需要提供更多信息,您可以"滚动"表达式定义并配置表达式定义的任何单个参数。

完整的表达式定义

filter:
  tokenize:
    token: "<"
    end-token: ">"

  • 数据格式感知步骤

EIP marshalunmarshal 支持定义数据格式:

marshal:
  json:
    library: Gson
注意

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.