API プロパティー

プロパティーは、特定のポリシーの動作を制御するために、ゲートウェイによって使用されます。 一般に、プロパティーはユーザーが指定しますが、ポリシーもプロパティーの設定を指定できます。

IBM® API Connectでは、カタログ固有の値で構成される API プロパティーを作成することで、ソース・コードを変更する必要がなくなります。 その後、API 定義のどこからでもこれらのプロパティーを参照できるようになります。

事前に提供されたAPIプロパティ

各種ポリシーの事前に提供されている API プロパティーを表に示します。

invoke ポリシーの動作を制御する、呼び出し関連の API プロパティーのリスト。
表 1. invoke ポリシーを制御するプロパティー
プロパティー 必須 説明 データ・タイプ
DataPower Gateway (Classic)
onlyx-ibm-gateway-decode-request-params いいえ 値を true に設定すると、呼び出しターゲット URL 上の変数定義によって参照されているすべての要求パラメーターは URL デコードされます。 デフォルトの動作ではどのパラメーターもデコードされないため、それらのパラメーターは変更なしにターゲット URL に送信されます。 ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-invoke-suppress-clientid いいえ 値を true に設定するか、値を指定しないと、X-IBM-Client-Id HTTP ヘッダー (API 要求で指定されている場合) は、呼び出しターゲット URL に送信されなくなります。 値を false に設定すると、X-IBM-Client-Id HTTP ヘッダーは呼び出しターゲット URL に送信されるようになります。

このプロパティーは、 DataPower® Gateway (v5 compatible)でのみサポートされます。 DataPower API Gateway を使用している場合、同じ機能を実現するには、以下の例のように、API の OpenAPI 定義の invoke ポリシー構成に header-control プロパティーを追加します。

X-Client-ID ヘッダーが送信されないようにするには、以下のように指定します。
- invoke:
    target-url: http://myhostname/mypath
    header-control:
        type: blacklist
        values:
            - ^X-Client-ID$
userId 照会パラメーターが送信されないようにするには、以下のように指定します。
- invoke:
    target-url: http://myhostname/mypath
    parameter-control:
        type: blacklist
        values:
            - ^userId$
ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-optimize-invoke いいえ false に設定されている場合は、ポリシーの最後の呼び出しがプロキシーによって置き換えられなくなります。 false 以外の任意の値 (大/小文字を区別しない) を指定すると、API がゲートウェイで実行された場合に、ポリシー内での最後の呼び出しがプロキシーによって置き換えられる可能性があります。 ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-queryparam-encode-plus-char いいえ 値を trueに設定すると、Invoke ポリシーと Proxy ポリシーの target-url の照会パラメーター値に含まれるすべての + 文字が %2Fにエンコードされます。

デフォルト値は falseです。

ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-api-enforce-response-limits いいえ true の値に設定されている場合、応答ルールに JSON パーサーを強制できます。 応答本体のサイズが、 DataPower ドメインで設定されている JSON パーサー制限よりも大きい場合、状況コード 500 が返されます。
注: x-ibm-gateway-api-enforce-response-limits プロパティーは DataPower Gateway (v5 compatible) ではサポートされますが、 DataPower API Gatewayではサポートされません。 しかし、'DataPower API Gateway使用している場合は、APIアセンブリでParseポリシーを使用して、これらの制限を強制することを検討してください。

ゲートウェイの種類については、API Connect ゲートウェイの種類を参照してください。

ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-invoke-emulate-v4-soap-error いいえ IBM API Management Version 4.0 は、Web サービスから SOAP 障害が戻されると、 DataPower エラーを開始します。 IBM API Connect は、SOAP エラーをキャッチするメカニズムを提供し、 DataPower エラーを開始しません。 IBM API Management Version 4.0で開発された API との互換性を保つために、このプロパティーを true に設定するのは、ゲートウェイ拡張がポスト・エラー・ルールで SOAP エラーを処理することを予期している場合のみにしてください。

デフォルト値は falseです。

注意: このプロパティーは推奨されません。 x-ibm-gateway-invoke-emulate-v4-invoke-errorをお勧めします。
ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-invoke-keep-payload いいえ true に設定されている場合、invoke ポリシーは HTTP DELETE メソッドでペイロードを送信します。 このプロパティは、xml-ph-0000@deepl.internal バージョン以降で使用可能です。 IBM DataPower Gateway バージョン 7.7.1.1 以降で

デフォルト値は falseです。

ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-invoke-emulate-v4-invoke-error いいえ バックエンド・サーバー・エラー (Web サービスから返された SOAP 障害、または RESTful サービスからの JSON または XML (非 SOAP) エラー) が返された場合、 IBM API Management Version 4.0DataPower エラーを開始します。 IBM API Connect は、SOAP エラーおよび操作エラーをキャッチするメカニズムを提供し、エラーが発生しても DataPower エラーを開始しません。 キャッチ・ポリシーが構成されていない場合、汎用エラー・メッセージが生成されます。 IBM API Management Version 4.0で開発された API との互換性のために、このプロパティーを true に設定するのは、ゲートウェイ拡張がゲートウェイ拡張ポスト・エラー・ルールでバックエンド・サーバー・エラーを処理することを予期している場合、または API のクライアントがバックエンド・サーバー・エラーが返されることを予期している場合のみにしてください。

デフォルト値は falseです。

ブール
map ポリシーの動作を制御する、マップ関連の API プロパティーのリスト。
表 2. map ポリシーを制御するプロパティー
プロパティー 必須 説明 データ・タイプ
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-array-first-element-value いいえ IBM API Management Version 4.0では、マッピング・ソース値が配列からのものである場合、最初の値のみが出力されます。 API Connectでは、デフォルトの動作として、すべての配列エレメント値の配列が返されます。 IBM API Management Version 4.0との互換性を維持するには、この API プロパティーを true に設定して、最初の配列エレメント値のみを返すようにします。 ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-resolve-apic-variables いいえ デフォルトでは、マップ構成で検出されたすべての API Connect 変数が解決されます。 例えば、$(request.headers.content-type) は、要求のコンテンツ・タイプ・ヘッダーに解決されます。 すべてのマップ・プロパティー内の変数を検索すると CPU に負担がかかるため、この API プロパティーを false に設定することで、変数を解決しないことを選択できます。 このプロパティーが構成されていない場合や、他の値に設定されている場合、これらの変数を検索するための既存の動作が継続します。 参照される変数が構成されたマップ入力のものである場合、マップ値の JavaScript スニペット内での変数の使用方法は変更されないことに注意してください。 ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-create-empty-array いいえ このプロパティーは、map ポリシーが空の配列の出力を処理する方法を制御します。以下の値を指定できます。
  • all: 空の子配列を含む、すべての空の配列を出力します。 プロパティーが構成されていないか、プロパティーの値が無効な場合、これがデフォルト値です。
  • parent: 現在のプロパティーの空の配列値のみを出力します。 このプロパティーの子マップ・アクションは試行されません。
  • none: 空の出力配列値が生成されないようにします。
ストリング
DataPower Gateway (Classic)
onlyx-ibm-gateway-optimize-schema-definition いいえ このプロパティーの値を true に設定すると、非常に複雑なスキーマ定義がポリシー出力定義によって参照される場合 (例えば、非常に複雑な WSDL スキーマをインポートすることにより生成される非常に複雑なスキーマが参照される場合など) に、map ポリシーのパフォーマンスが向上します。

参照される定義がスキーマの値として提供されると、map ポリシーはスキーマを API 定義から作成します。 スキーマに循環参照を生成する参照が含まれていない場合、このプロパティーを true に設定すると、そうでない場合に生成されるスキーマと同じスキーマを生成する際にパフォーマンス上の利点が得られる可能性があります。 ただし、スキーマが非常に複雑で、多数の循環参照が存在する可能性がある場合は、生成されるスキーマは異なる可能性があります。これは、拡張スキーマ処理では循環参照が異なる方法で処理されるためです。 このような場合、生成された出力を調べて、パフォーマンス上の利点を得た代わりに map ポリシーの出力に変更が生じていないかを確認する必要があります。

このプロパティーのデフォルト値は false で、既存の動作とパフォーマンスが維持されます。

ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-null-value いいえ map ポリシーの入力データから取得したプロパティーの値が null である場合に、そのプロパティーが出力文書にマップされるようにするには、この API プロパティーの値を true に設定します。 デフォルトでは、map ポリシーの入力データから取得したプロパティーの値が null である場合、そのプロパティーは出力文書にマップされません。 ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-resolve-xmlinput-datatypes いいえ 数値データまたはブール・データを含む XML 入力エレメントには、このデータをストリング値と特定のデータ型のどちらとしてマップするのかを示すメタデータがありません。 このプロパティーの値を false に設定すると、XML 入力エレメントが常にストリングとしてマップされます。 この値を true に設定すると、数値またはブール値の XML 入力エレメントが、入力スキーマから取得した対応するデータ型としてマップされます。

デフォルト値は falseです。

ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-xml-empty-element いいえ このプロパティーは、入力文書が XML である場合に、map ポリシーが空の XML 入力エレメントを処理する方法を制御し、JSON 出力に影響を与えます。以下の値を設定できます。
  • string: 空の XML エレメントの値が空のストリングとして扱われます。 プロパティーが構成されていないか、プロパティーの値が無効な場合、これがデフォルト値です。
  • null: 空の XML エレメントの値が null として扱われます。 API プロパティー x-ibm-gateway-map-null-value にも値 true が設定されていなければ、このエレメントが JSON 出力プロパティーにマップされることはありません。
  • none: 空の XML エレメントが無視されます。
  • string-badgerfish: 空の XML エレメントの値が空のストリングとして扱われます。 空ストリング値は、JSON BadgerFish 値プロパティーに入れられます。
  • null-badgerfish: 空の XML エレメントの値が null として扱われます。 ヌル値は、JSON BadgerFish 値プロパティーに入れられます。 API プロパティー x-ibm-gateway-map-null-value にも値 true が設定されていなければ、このエレメントが JSON 出力プロパティーにマップされることはありません。
ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-schema-definition-reference-limit いいえ このプロパティーの値は、循環スキーマ定義の反復の最大許容回数を指定する整数値に設定します。

デフォルト値は 1 です。この場合、循環スキーマ定義をたどって反復処理することはありません。 可能な最大値は 5 です。 5 より大きい値を指定すると、値 5 が想定されます。 数値でない値を指定した場合は、1 の値が想定されます。

ストリング
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-emulate-v4-default-required-properties いいえ このプロパティーを true に設定すると、以下の特定の場合に、マップされず、かつ入力データが存在しない必須プロパティーに対してデフォルト値が出力で生成されます。
  • 配列が、1 つ以上の必須プロパティーが含まれているオブジェクトで構成されている。
  • オプションであるオブジェクトに、1 つ以上の必須の子プロパティーが含まれている。

デフォルトでは、これらの必須プロパティーは出力に存在しません。 x-ibm-gateway-map-emulate-v4-default-required-properties API プロパティーを true に設定すると、これらの必須プロパティーが出力に含まれます。 出力スキーマが出力プロパティーの default プロパティーを定義している場合、指定されたデフォルト値が使用されます。それ以外の場合は、以下のように、デフォルト値がデータ型に応じて割り当てられます。

  • ストリング: 空ストリング ("")
  • 数値: 0
  • ブール: false
  • オブジェクト: 空のオブジェクト
  • 配列: 空の配列
例 1
入力データは、以下のオブジェクトの配列を持ちます。
[{“a”: “value1”}, {“a”: “value2", "b": “value3”}]

出力スキーマでは、ab という 2 つのプロパティーを持つ出力オブジェクトが定義されます。このうち、b は必須です。 マップ・ポリシーは、以下のマッピングを定義します。

  • input.array.a から output.array.a
  • input.array.b から output.array.b

x-ibm-gateway-map-emulate-v4-default-required-properties API プロパティーが true に設定されていて、b がマップされておらず、かつ入力データも存在しない場合、b には空ストリングのデフォルト値が割り当てられ、出力は次のようになります。

[{“a”: “value1", "b": ""}, {"a": "value2", "b": "value3"}]
例 2
出力スキーマは、以下の構造を定義します。
{"a" : {"b" : {"c" : "value1", "d" : "value2"} } }

プロパティー b はオプションですが、b 内のプロパティー d は必須です。

マップ・ポリシーは、output.a.b.c へのマッピングを定義します。

x-ibm-gateway-map-emulate-v4-default-required-properties API プロパティーが true に設定されていて、d がマップされていない場合、d には空ストリングのデフォルト値が割り当てられ、出力は次のようになります。

{"a" : {"b" : {"c" : "value1", "d" : ""} } }

x-ibm-gateway-map-emulate-v4-default-required-properties API プロパティーが指定されていないか、または値 true が指定されていない場合、これらの必須プロパティーは、デフォルト値を使用して出力で作成されません

ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-post-process-json-output いいえ マップされた JSON 出力の後処理を有効にするには、このプロパティーの値を true に設定します。 JSON 出力の後処理では、プロパティー値のデータ型がスキーマで定義されたデータ型と同じであることを確認するために出力スキーマが使用されます。 また、XML 入力のオブジェクト・マッピングが原因で Badgerfish JSON 構文を持つ出力プロパティー値が正規化されます。 マップされた JSON 出力の後処理を行わない場合は、値を false に設定します。

デフォルト値は falseです。

ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-map-emulate-v4-empty-json-object いいえ マッピングの入力が存在せず、デフォルトのマッピングが構成されていないためにマッピングが失敗した場合、デフォルトの動作では、出力マッピングに対する変更は行われません。 このプロパティーの値を true に設定すると、 IBM API Management Version 4.0の動作をエミュレートして、ターゲット・マッピングの親に対して空のオブジェクトが作成されます。
マップ・ポリシーは、output.a.b.c へのマッピングを定義します。
入力データが存在する場合、出力は次のようになります。
{
  "a": {
    "b": {
      "c": "inputvalue"
    }
  }
}
入力データが存在せず、x-ibm-gateway-map-emulate-v4-empty-json-object API プロパティーが true に設定されている場合、出力は次のようになります。
{
  "a": {
    "b": {
    }
  }
}
プロパティー a および b が作成されますが、b の値は空のオブジェクトです。

デフォルト値は falseです。

ブール
DataPower Gateway (Classic) のみproxy ポリシーの動作を制御する、プロキシー関連の API プロパティーのリスト。
表 3. proxy ポリシーを制御するプロパティー
プロパティー 必須 説明 データ・タイプ
x-ibm-gateway-proxy-suppress-clientid いいえ false に設定すると、プロキシー・ターゲット URL への X-IBM-Client-Id HTTP ヘッダー (API 要求で指定されている場合)、または要求 URL の client_id 照会パラメーターの挿入がアクティブ化されます。 指定されていない場合、または値 true が設定されている場合は、プロキシー・ターゲット URL へのこのヘッダーの送信が抑止されます。

このプロパティーは、 DataPower Gateway (v5 compatible)でのみサポートされます。 DataPower API Gateway を使用している場合、同じ機能を実現するには、以下の例のように、API の OpenAPI 定義の invoke ポリシー構成に header-control プロパティーを追加します。

X-Client-ID ヘッダーが送信されないようにするには、以下のように指定します。
- proxy:
    target-url: http://myhostname/mypath
    header-control:
        type: blacklist
        values:
            - ^X-Client-ID$
userId 照会パラメーターが送信されないようにするには、以下のように指定します。
- proxy:
    target-url: http://myhostname/mypath
    parameter-control:
        type: blacklist
        values:
            - ^userId$
ブール
x-ibm-gateway-optimize-invoke いいえ false に設定されている場合は、ポリシーの最後の呼び出しがプロキシーによって置き換えられなくなります。 false 以外の任意の値 (大/小文字を区別しない) を指定すると、API がゲートウェイで実行された場合に、ポリシー内での最後の呼び出しがプロキシーによって置き換えられる可能性があります。 ブール
x-ibm-gateway-queryparam-encode-plus-char いいえ trueに設定すると、Invoke ポリシーおよび Proxy ポリシーの target-url の照会パラメーター値に含まれるすべての + 文字が %2Fにエンコードされます。

デフォルト値は falseです。

ブール
x-ibm-gateway-api-enforce-response-limits いいえ true の値に設定されている場合、応答ルールに JSON パーサーを強制できます。 応答本体のサイズが、 DataPower ドメインで設定されている JSON パーサー制限よりも大きい場合、状況コード 500 が返されます。 ブール
レート制限ポリシーの動作を制御する API プロパティーのリスト。
表 4。 レート制限ポリシーを制御するプロパティー
プロパティー 必須 説明 データ・タイプ
x-ibm-gateway-emulate-v4-plan-rate-limit いいえ IBM API Connect Version 10のデフォルトでは、プランに対してのみレート制限を構成し、プラン内の API 操作に対しては構成しない場合、API 内のどの操作が要求されたかに関係なく、API 全体に対して単一のレート制限しきい値が設定されます。 この動作は、API の 操作に対してレート制限が 個別に 設定されている IBM API Management Version 4.0 とは異なります。 バージョン 4.0 の動作をエミュレートするようにバージョン 10 の動作を変更するには、この API プロパティーを値 true に設定します。 ブール
複数のポリシーの動作を制御する API プロパティーのリスト。
表 5. 複数のポリシーを制御するプロパティー
プロパティー 必須 説明 データ・タイプ
DataPower Gateway (Classic)
onlyx-ibm-gateway-sourcecode-resolve-apic-variables いいえ trueに設定すると、 API Connect 変数参照が解決されます。 ポリシーで API Connect 変数参照を無視する場合は、 false に設定します。

デフォルト値は trueです。

このプロパティーは、以下のポリシーに適用されます。
  • マップ
  • GatewayScript
  • XSLT
  • の場合
  • スイッチ
注: このプロパティー設定は、マップ・ポリシーの x-ibm-gateway-map-resolve-apic-variables API プロパティー設定によってオーバーライドされます。
ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-api-json-parse-error-handling いいえ API 要求または応答ペイロードに、 DataPower Gatewayで使用される JSONX XML 内部構文で表現できない文字を含む有効な JSON コンテンツが含まれている場合は、このプロパティーを escape-unicode に設定して、構文解析エラーなしでペイロードを受け入れることができるようにします。 このプロパティーが構成されていない場合、または他の値に設定されている場合、ペイロードは無効な JSON として拒否されます。

このプロパティーは、API 要求ペイロードに適用され、x-ibm-gateway-api-enforce-response-limits が有効な場合は API 応答ペイロードに適用されます。

ストリング
DataPower Gateway (Classic)
onlyx-ibm-gateway-framework-preserve-escaped-reverse-solidus いいえ デフォルトでは、ポリシー・プロパティー内のストリング \\ は、単一の \ 文字に変換されます。 ストリング \\を保持するには、このプロパティーを true に設定します。 ブール
DataPower Gateway (Classic)
onlyx-ibm-gateway-inspect-request-headers いいえ API 要求の HTTP ヘッダーを検査して、ヘッダー値に不正な XML 文字が含まれていないかを確認します。使用できる値は以下のとおりです。
  • default: ヘッダー値で、これらの文字を検査しません。 存在する場合、API 要求は「HTTP 500 Internal Server Error」で失敗します。
  • sanitize: ヘッダー値内の不正な XML 文字が、? 文字に置き換わります。 API 処理は続行します。 request.headers.<headername> を読み取ろうとする API には、値内の ? 文字が表示されます。 しかし、message.headers の表示元のプロトコル・ヘッダーには元の文字が残っており、それが呼び出しサーバーやプロキシー・バックエンド・サーバーに送信されます。
  • bad-request: ヘッダー値で、これらの文字を検査します。 存在する場合、API 要求は「HTTP 400 Bad Request」で失敗します。

デフォルト値は defaultです。

ブール