第135章 YAML DSL
Camel 3.9 以降
YAML DSL は、YAML で Camel ルート、ルートテンプレート、および REST DSL 設定を定義する機能を提供します。
135.1. ルートの定義
ルートは、次のように定義された要素のコレクションです。
- from: 1 uri: "direct:start" steps: 2 - filter: expression: simple: "${in.header.continue} == true" steps: - to: uri: "log:filtered" - to: uri: "log:original"
詳細は以下のようになります。
各ステップは、フィールド名が EIP 名である単一のエントリーを持つ YAML マップを表します。
原則として、各ステップは、関連する定義が宣言するすべてのパラメーターを提供しますが、いくつかの小さな違い/機能強化があります。
- 出力認識ステップ
filter
や split
などの一部のステップには、exchange がフィルター式と一致するとき、または分割式によって生成されたアイテムに対して独自のパイプラインがあります。これらのパイプラインは steps
フィールドで定義できます。
filter: expression: simple: "${in.header.continue} == true" steps: - to: uri: "log:filtered"
- 式認識ステップ
filter
や split
などの一部の EIP は、expression
フィールドによる式の定義をサポートしています。
明示的な式フィールド
filter: expression: simple: "${in.header.continue} == true"
DSL を簡潔にするために、expression
フィールドを省略できます。
暗黙式フィールド
filter: simple: "${in.header.continue} == true"
一般に、式は上記の例のようにインラインで定義できますが、さらに情報を提供する必要がある場合は、式の定義をデプロイメントして、式が定義する単一のパラメーターを設定できます。
完全な式の定義
filter: tokenize: token: "<" end-token: ">"
- データ形式対応の手順
EIP marshal
と unmarshal
はデータ形式の定義をサポートしています。
marshal: json: library: Gson
データ形式のデフォルト設定を使用する場合は、json: {}
のようにデータ形式パラメーターとして空のブロックを配置する必要があります。