03 リクエスト・レスポンス変換設定ガイド

[更新日:2025年2月18日]

概要

このドキュメントでは、通過するリクエストやレスポンスの内容を動的に変更する API Gateway の作成方法について説明します。
サービス、ルートを作成し、そのルートに対してリクエストやレスポンスの変換の設定を行います。

サービス作成

サイドバーからサービス一覧を選択し、サービス作成ボタンを押下します。

サービス作成ボタンを押下する

バックエンドサービスの情報を入力し、作成ボタンを選択するとサービスを作成することができます。

サービスの作成

設定値

項目

設定値

名前(必須)

任意のサービス名

タグ

任意の値

プロトコル(必須)

http or https

ホスト(必須)

バックエンドサービスのホスト

パス

バックエンドサービスのパス(未入力の場合、「/」に設定される)

ポート

バックエンドサービスのポート番号(未入力の場合、設定したプロトコルに対応するポート番号が設定される)

認証設定

なし

作成に成功すると、以下のように一覧画面に表示されます。
サービス名をクリックもしくは行をダブルクリックすることで、サービス詳細画面に遷移します。

サービス詳細画面の表示

サービス詳細画面に遷移すると、登録したサービスの情報を確認することができます。

登録したサービス情報の表示

ルートの作成

サイドバーからルート一覧を選択し、ルート作成ボタンを押下します。

ルート作成ボタンを押下する

必要な項目を入力し、作成ボタンを選択するとルートを作成することができます。

ルートの作成

設定値

項目

設定値

名前(必須)

任意のルート名

タグ

任意の値

プロトコル(必須)

http or https or http/https

パス

任意のパス(未入力の場合、「/」が設定される)

HTTPメソッド

ルートへのアクセスメソッド(未入力の場合、全メソッドが許可される)

作成に成功すると、以下のように一覧画面に表示されます。
ルート名をクリックもしくは行をダブルクリックすることで、ルート詳細画面に遷移します。

ルート詳細画面の表示

ルート詳細画面に遷移すると、登録したルートの情報を確認することができます。

登録したルート情報の表示

リクエスト変換の設定

クライアントサイドからのリクエストを、バックエンドサービスに到達する前に変換する設定を行います。

サイドバーからリクエスト設定を選択し、リクエスト構成の画面で編集ボタンを押下します。 必要な入力値を入力し、更新ボタンを押下することで、ルートにリクエスト変換の設定をすることができます。

リクエスト変換の設定画面

設定値

同じキーが指定された場合、Allow > Remove > Rename > Replace > Add > Append の順で処理されます。

HTTPメソッド

変換ロジックを適用するHTTPメソッドを指定します。

項目

設定値

HTTPメソッド

変換対象のメソッド

Allow

許容する項目を指定します。 未設定の場合は全ての項目が許容されます。

項目

設定値

Body

request bodyに許可するキーを設定する。ここで設定しなかったキーはリクエストからOmitされる。

例) bodyにa,bを指定した場合

{
  "a": "value1",
  "b": "value2",
  "c": "value3"
}

上記のリクエストは以下のように変換される。

{
  "a": "value1",
  "b": "value2"
}

Remove

削除する項目を指定します。

項目

設定値

headerKeys

ヘッダーから削除するキーを設定する。

queryKeys

queryParameterから削除するキーを設定する。

bodyKeys

request bodyから削除するキーを設定する。

例) headerKeysにa,bを指定した場合

{
  "a": "value1",
  "b": "value2",
  "c": "value3"
}

上記のリクエストは以下のように変換される。

{
  "c": "value3"
}

Rename

キー名を変更する項目を指定します。

項目

設定値

headers

headerにおいて、名称の置換を行うキーを設定する。

queryParams

queryParameterにおいて、名称の置換を行うキーを設定する。

body

request bodyにおいて、名称の置換を行うキーを設定する。

例) headersにa:x, b:yを指定した場合

{
  "a": "value1",
  "b": "value2",
  "c": "value3"
}

上記のリクエストは以下のように変換される。

{
  "x": "value1",
  "y": "value2",
  "c": "value3"
}

Replace

置換する項目を指定します。

項目

設定値

headers

headerにおいて、値の置換を行うキーを設定する。

queryParams

queryParameterにおいて、値の置換を行うキーを設定する。

body

request bodyにおいて、値の置換を行うキーを設定する。

例) headersにa:x, b:yを指定した場合

{
  "a": "value1",
  "b": "value2",
  "c": "value3"
}

上記のリクエストは以下のように変換される。

{
  "a": "x",
  "b": "y",
  "c": "value3"
}

Add

上書き追加する項目を指定します。

項目

設定値

headers

headerにおいて、追加するkey,valueを設定する。

queryParams

queryParameterにおいて、追加するkey,valueを設定する。

body

request bodyにおいて、追加するkey,valueを設定する。

例) headersにa:x, b:yを指定した場合

{
    "b": "value2",
    "c": "value3"
}

上記のリクエストは以下のように変換される。

{
  "a": "x",
  "b": "y",
  "c": "value3"
}

Append

無ければ追加する項目を指定します。

項目

設定値

headers

headerにおいて、追加するkey,valueを設定する。

queryParams

queryParameterにおいて、追加するkey,valueを設定する。

body

request bodyにおいて、追加するkey,valueを設定する。

例) headersにa:x, b:yを指定した場合

{
    "b": "value2",
    "c": "value3"
}

上記のリクエストは以下のように変換される。

{
  "a": "x",
  "b": "value2",
  "c": "value3"
}

レスポンス変換の設定

バックエンドサービスから返却されたレスポンスを変換する設定を行います。

サイドバーからレスポンス設定を選択します。 レスポンス設定画面に遷移後、レスポンス構成の編集ボタンを押下します。
必要な入力値を入力し、更新ボタンを押下することで、ルートにレスポンス変換の設定をすることができます。

レスポンス変換の設定画面

設定値

同じキーが指定された場合、Allow > Remove > Rename > Replace > Add > Append の順で処理されます。

Allow

許容する項目を指定します。

項目

設定値

body

response bodyに許可するキーを設定する。ここで設定しなかったキーはレスポンスからOmitされる。

例) bodyにa,bを指定した場合

{
  "a": "value1",
  "b": "value2",
  "c": "value3"
}

上記のレスポンスは以下のように変換される。

{
  "a": "value1",
  "b": "value2"
}

Remove

削除する項目を指定します。

項目

設定値

ifStatusCode

削除条件となるステータスコード。

headerKeys

レスポンスから削除するヘッダーを設定する。

jsonKeys

レスポンスのJSONから削除するフィールドを設定する。

例) headerKeysにa,bを指定した場合

{
  "a": "value1",
  "b": "value2",
  "c": "value3"
}

上記のレスポンスは以下のように変換される。

{
  "c": "value3"
}

Rename

キー名を変更する項目を指定します。

項目

設定値

ifStatusCode

変更条件となるステータスコード。

headers

レスポンスの特定のヘッダーの名前を変更する。

例) headersにa:x, b:yを指定した場合

{
  "a": "value1",
  "b": "value2",
  "c": "value3"
}

上記のレスポンスは以下のように変換される。

{
  "x": "value1",
  "y": "value2",
  "c": "value3"
}

Replace

置換する項目を指定します。

項目

設定値

ifStatusCode

置換条件となるステータスコード。

headers

レスポンスの特定のヘッダーの値を置換する。

json

レスポンスのJSONの特定のフィールドの値を置換する。

body

レスポンスのbodyを置換する。

例) headersにa:x, b:yを指定した場合

{
  "a": "value1",
  "b": "value2",
  "c": "value3"
}

上記のレスポンスは以下のように変換される。

{
  "a": "x",
  "b": "y",
  "c": "value3"
}

Add

上書き追加する項目を指定します。

項目

設定値

ifStatusCode

追加条件となるステータスコード。

headers

レスポンスに新しいヘッダを追加する。

json

レスポンスのJSONの特定のフィールドに値を追加する。

例) headersにa:x, b:yを指定した場合

{
    "b": "value2",
    "c": "value3"
}

上記のレスポンスは以下のように変換される。

{
  "a": "x",
  "b": "y",
  "c": "value3"
}

Append

無ければ追加する項目を指定します。

項目

設定値

ifStatusCode

追加条件となるステータスコード。

headers

レスポンスに新しいヘッダを追加する。

json

レスポンスのJSONの特定のフィールドに値を追加する。

例)headersにa:x, b:yを指定した場合

{
    "b": "value2",
    "c": "value3"
}

上記のレスポンスは以下のように変換される。

{
  "a": "x",
  "b": "value2",
  "c": "value3"
}

設定完了

これでリクエスト・レスポンスの変換設定が完了しました。 リクエスト変換を設定したルートにリクエストを送ると、API Gateway がリクエストを変換してバックエンドサービスにアクセスします。 また、レスポンス変換を設定したルートにリクエストを送ると、API Gateway がバックエンドサービスからのレスポンスを変換し、クライアントに送信する前に加工します。