チュートリアル: JSON コンテンツのマッピング
このチュートリアルでは、メッセージの内容をある形式またはスキーマから、別の形式またはスキーマにマップする方法を説明します。
開始前に
このタスクを実行できるのは、以下のロールのいずれかを割り当てられているユーザーです。- カタログ所有者
- 開発者
このチュートリアルについて
このチュートリアルでは、以下のレッスンを行います。新規 API の作成
新規 API を作成するには、以下のステップを実行します。
JSON コンテンツのマップ
- ゲートウェイ」 タブをクリックします。
- キャンバス上の既存のポリシーを削除するには、そのポリシーにカーソルを合わせ、 [削除 ] アイコン
をクリックします。注: DataPower API Gateway を使用している場合、ポリシーは invoke ポリシーであり、 DataPower Gateway (v5 compatible) を使用している場合、ポリシーは proxy ポリシーである。
- パレットを表示するには、右側のパネルにあるプラスアイコンをクリックしてください
。
- Transforms 列で、 map を選択する。
マップポリシーノードがキャンバスに表示されます。

- マップポリシー ノードをクリックして、設定ダイアログ ボックスを開きます。
- 「入力」 の横にある「 入力の編集 」アイコンをクリックします。


- Add inputをクリックする。
- 以下の値を入力して、マップ入力設定を完了する
- コンテキスト変数フィールドに、 request.body と入力する。
- Name フィールドに input と入力する。
- コンテンツタイプのドロップダウンリストから、 application/json を選択します。
- 定義」のドロップダウンリストから、 Inline
schema を選択する。
Provide a schema ポップアップ・ウィンドウが表示されます。

- Provide a schema ポップアップ・ウィンドウで、以下のタスクを実行する。
- サンプルJSONから生成 ]タブを選択します。
- 以下のサンプル JSON をボックスに貼り付けます。
{"order": {"customer": {"name": { "firstname":"John", "middlename":"Q", "lastname":"Smith" }, "address": { "line1":"550 King St", "line2":"Dept 5", "city":"Littleton", "state":"MA", "country":"USA", "code":"01460" } } }, "items": [{"item":"shoes", "color":"black", "qty":2, "price":23.50}, {"item":"socks", "color":"argyle", "qty":2, "price":3.95}, {"item":"pants", "color":"grey", "qty":1, "price":48.00}] } - 生成 」をクリックする。

- 「完了」をクリックします。
ポップアップウィンドウが閉じました。
- マップポリシーの設定ダイアログボックスで、[ 完了] をクリックしてマップの設定を完了します。
- 「出力 」列の横にある 「出力の編集 」アイコン
をクリックします。
- Add outputをクリックする。
- 以下の値を入力して、マップ出力設定を完了する
- コンテキスト変数フィールドに、 message.body と入力する。
- Name フィールドに output と入力する。
- コンテンツタイプのドロップダウンリストから、 application/json を選択します。
- 定義」のドロップダウンリストから、 Inline
schema を選択する。
Provide a schema ポップアップ・ウィンドウが表示されます。

- Provide a schema ポップアップ・ウィンドウで、以下のタスクを実行する。
- サンプルJSONから生成 ]タブを選択します。
- 以下のサンプル JSON をボックスに貼り付けます。
{"order": { "date":"12-12-12", "customer": "John Smith", "address": { "street":"king", "citystatezip":"lit MA 01469", "country":"USA" }, "items":[{"type":"shoes", "color":"black", "qty":2, "price":23.50}] } } - 生成 」をクリックする。

- 「完了」をクリックします。
ポップアップウィンドウが閉じました。
- マップポリシーの設定ダイアログボックスで、[ 完了] をクリックしてマップの設定を完了します。

- 保存 をクリックします。
- マップ出力設定ウィンドウの出力欄で、以下のタスクを実行する。
- 日付のラジオボタンを選択します。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、以下のサンプル JavaScript を入力します。
new Date().toGMTString() - 「完了」をクリックします。

- マッピングの設定ダイアログボックスで、以下のサンプル JavaScript を入力します。
- 入力」 列で 「firstname」 ラジオボタンを選択し、 「出力」 列で「 customer」 ラジオボタンを選択します。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、 デフォルト値として空の文字列チェックボックスを選択します。
- 「完了」をクリックします。
- 入力欄で 「middlename」 ラジオボタンを選択し、 出力欄で「 customer 」ラジオボタンを選択する。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、 デフォルト値として空の文字列チェックボックスを選択します。
- 「完了」をクリックします。
- Input」 列で 「lastname」 ラジオボタンを選択し、「 Output」 列で「 customer」 ラジオボタンを選択します。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、 デフォルト値として空の文字列チェックボックスを選択します。
- 「完了」をクリックします。

- 出力欄で、 顧客のラジオボタンを選択します。
Configure mapping ダイアログボックスが表示されます。
- Configure mapping ダイアログ・ボックスの Value フィールドに、以下のサンプル・コードを入力する。
var name = $(input.order.customer.name.firstname) + ' '; if($(input.order.customer.name.middlename)) { name += $(input.order.customer.name.middlename) + ' ';} name += $(input.order.customer.name.lastname); name - 「完了」をクリックします。

- Configure mapping ダイアログ・ボックスの Value フィールドに、以下のサンプル・コードを入力する。
- 「入力 」列で、「 」のラジオボタンを選択し、次に 「出力 」列で「 通り 」のラジオボタンを選択します。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、 デフォルト値として空の文字列チェックボックスを選択します。
- 「完了」をクリックします。
- 「入力 」列で、「 」のラジオボタンを選択し、次に 「出力 」列で「 通り 」のラジオボタンを選択します。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、 デフォルト値として空の文字列チェックボックスを選択します。
- 「完了」をクリックします。

- 出力欄で、 通りのラジオボタンを選択する。
Configure mapping ダイアログボックスが表示されます。
- Configure mapping ダイアログ・ボックスの Value フィールドに、以下のサンプル・コードを入力する。
var street = $(input.order.customer.address.line1) + ' '; if($(input.order.customer.address.line2)) { street += $(input.order.customer.address.line2);} street - 「完了」をクリックします。

- Configure mapping ダイアログ・ボックスの Value フィールドに、以下のサンプル・コードを入力する。
- 入力」 欄で 「市区町村」のラジオボタンを選択し、 「出力」 欄で 「citystatezip」のラジオボタンを選択する。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、 デフォルト値として空の文字列チェックボックスを選択します。
- 「完了」をクリックします。
- 入力」 欄で 「州」 ラジオボタンを選択し、 「出力」 欄で「 citystatezip」 ラジオボタンを選択する。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、 デフォルト値として空の文字列チェックボックスを選択します。
- 「完了」をクリックします。
- 入力」 列で「 コード」 ラジオボタンを選択し、 「出力」 列で「 citystatezip」 ラジオボタンを選択する。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、 デフォルト値として空の文字列チェックボックスを選択します。
- 「完了」をクリックします。

- 出力欄で、 通りのラジオボタンを選択する。
Configure mapping ダイアログボックスが表示されます。
- Configure mapping ダイアログ・ボックスの Value フィールドに、以下のサンプル・コードを入力する。
$(1) + " " + $(2) + " " + $(3)注: 変数参照は位置指定であり、$(1)は最初にマップされた値(input.order.customer.city)を指し、以下同様である。 - 「完了」をクリックします。

- Configure mapping ダイアログ・ボックスの Value フィールドに、以下のサンプル・コードを入力する。
- 「入力 」列で、「 」のラジオボタンを選択し、続いて「 出力 」列で「 項目 」のラジオボタンを選択します。
Configure mapping ダイアログボックスが表示されます。
- マッピングの設定ダイアログボックスで、 デフォルト値として空の文字列チェックボックスを選択します。
- 「完了」をクリックします。

- 出力列の下にある、2番目の追加プロパティをクリックする。

- 最初のフィールドに total と入力する。
- ドロップダウンリストから、 float を選択する。
- アイコンをクリックする。

- 入力欄で項目のラジオボタンを選択し、 出力欄で合計のラジオボタンを選択する。
Configure mapping ダイアログボックスが表示されます。
- Configure mapping ダイアログ・ボックスの Value フィールドに、以下のサンプル・コードを入力する。
$(0) + ($(input.items.price) * $(input.items.qty))
- 「完了」をクリックします。

- Configure mapping ダイアログ・ボックスの Value フィールドに、以下のサンプル・コードを入力する。
- マップ ポリシー ノードの出力ページで、[ 保存] をクリックします。
- 日付のラジオボタンを選択します。
- ソースをクリックする。
- スクロールダウンし、合計が計算されるコードを見つけます。

- コード foreach: input.items のある新規行を挿入します。

- 保存 をクリックします。
API 定義のテスト
API Manager テストツールを使用してAPI定義をテストするには、以下の手順を実行します:
API 定義の管理
新しいAPIが期待通りに動作するようになったので、その管理を始めることができる。 即時のオプションを確認するには、以下の手順を実行します。
このチュートリアルで実行したこと
- 新規 API の作成
- ある JSON スキーマから別のスキーマにコンテンツをマップ



















