14.5. 一般的な変換パターン
イベントデータを効果的に形成するには、一般的な JSONata 変換パターンを利用して、イベントを保持、抽出、再構築、または条件付きで修正できます。
14.5.1. 元のイベント構造の保持 リンクのコピーリンクがクリップボードにコピーされました!
イベントの残りの部分を変更しながら属性を追加または調整できるため、ダウンストリームのコンシューマーは最小限の変更で元のデータを受け取ります。
元のイベント構造を保持しながら静的属性を追加する例
14.5.2. 属性としてのフィールドの抽出 リンクのコピーリンクがクリップボードにコピーされました!
ペイロードからトップレベルの CloudEvent 属性に値をプロモートすると、フィルタリングおよびルーティングが容易になります。
ペイロードからユーザー ID およびリージョンを抽出し、属性として公開する例
JSONata では、$ 記号は入力オブジェクト全体を表します。data の使用 - $ は、選択したフィールドをプロモートしながら、元のイベントペイロードを保持します。
14.5.3. イベントデータの再構築 リンクのコピーリンクがクリップボードにコピーされました!
JSONata を使用して、ペイロードの再構築、フィールドの名前変更、オブジェクトのネスト化、および計算の実行を行うことで、別のシステムに必要なスキーマにイベントを変換します。
注文イベントを再構築してアイテムの合計値を計算する例
上記の変換と、この JSON オブジェクトの入力として:
変換により、以下の出力が生成されます。
このパターンを使用して、特定の構造または計算フィールドを必要とする API と統合します。
14.5.4. 条件変換 リンクのコピーリンクがクリップボードにコピーされました!
JSONata を使用すると、条件ロジックを変換に直接組み込み、属性またはペイロード値に基づく動的なイベントシェーピングを有効にできます。
条件に基づいて異なるタイプのものおよび優先順位を適用する例
この例では、以下のようになります。
-
イベントタイプが
order.createdの場合、新しいタイプはnew.orderになります。それ以外の場合は、update.order に設定されます。 -
ペイロードの合計フィールドが 1000 より大きい場合は、
priority属性が値が高い状態で追加されます。それ以外の場合はnormalに設定されます。