構文解析
「解析」 ポリシーを使用して、入力文書の構文解析を制御します。 入力文書が JSON ストリングである場合に、そのストリングが、上書きコピーされるのではなく構文解析されます。
| ゲートウェイ | ポリシーのバージョン |
|---|---|
| DataPower® API Gateway | 2.0.0 2.1.0 (DataPower API Gateway バージョン 10.0.3.0 以降) 2.2.0 (DataPower API Gateway バージョン 10.5.0.5 以降) |
このトピックでは、アセンブリー・ユーザー・インターフェースでのポリシーの構成方法について説明します。 OpenAPI ソースでのポリシーの構成方法について詳しくは、 parseを参照してください。
解析 について
- デフォルトの解析設定にするプロパティーの取得元にする有効な解析設定構成を指定します。注: デフォルト名を変更する場合は、対応する ParseSettings オブジェクトを DataPower API Gatewayで個別に構成する必要があります。
- 解析設定としてシリアライズされた XML または JSON プロパティーとしてリテラル・ストリングを指定します。 これらのプロパティーは、既存のデフォルト・プロパティーより優先されます。 リテラル・ストリングは、XML または JSON 形式でなければなりません。
- XML 形式は
"<ParseSettings><propertyName>propertyValue</propertyName></ParseSettings>"です。 - JSON 形式は
"{ \"ParseSettings\" : { \"propertyName\" : propertyValue } }"です。
- XML 形式は
- 解析設定としてシリアライズされた XML プロパティーまたは JSON プロパティーの取得元となる、名前付きコンテキストを表す URL。 これらのプロパティーは、既存のリテラルまたはデフォルト・プロパティーより優先されます。
プロパティー
以下の表に、このポリシーのプロパティーをリストします。表には、プロパティーが必須かどうか、入力用の有効な値とデフォルト値、および値のデータ型が示されています。
| プロパティー・ラベル | 必須 | 説明 | データ・タイプ |
|---|---|---|---|
| タイトル | いいえ | ポリシーのタイトル。 デフォルト値は |
ストリング |
| 説明 | いいえ | ポリシーの説明。 | ストリング |
| コンテンツ・タイプを使用 | いいえ | この設定が有効になっていて、文書タイプを検出するように解析設定が構成されている場合、解析操作は、要求ヘッダー内に指定されている Content-Type を使用します。この設定が有効になっていて、解析設定の文書タイプが JSON または XML 用に構成されている場合、解析操作は、要求ヘッダー内に指定されている この設定の有効化が適用されるのは、予期される この設定が有効になっていない場合、解析操作は、解析設定で指定されている文書タイプ、または検出された文書タイプ (文書タイプを検出するように解析設定が構成されている場合) を使用します。 このチェック・ボックスは、デフォルトでクリアされています。 |
ブール値 |
| 解析設定オブジェクト参照 | いいえ | 動的オブジェクトのデフォルトのプロパティー値の取得元となる、既存の有効なオブジェクト。 | ストリング |
| 文書タイプ | いいえ | 解析する文書のタイプ。 次のオプションのいずれかを選択します:
GET 要求内の照会変数は、 |
ストリング |
| 最大文書サイズ | いいえ | 構文解析操作が受け入れる JSON、XML、または GraphQL の入力文書の、最大文書サイズ (バイト) (オプション)。 この設定により、最大文書サイズを適用することで脅威を防ぐことができます。 値は、0 から 5368709121 の範囲で入力します。 文書のサイズが最大サイズを超えていると、その文書は拒否されます。 値が 0 の場合、文書サイズの制限はありません。 0 に設定した場合、操作の結果で文書サイズは返されません。 デフォルト値は 4194304 です。 |
整数 |
| 最大ネスティング深さ | いいえ | (オプション) 解析操作で受け入れられる XML、JSON、または GraphQL メッセージのネストの最大の深さです。 この設定により、メッセージに制限を適用することで脅威を防ぐことができます。
0 から 4096 の範囲の値を入力します。 最大深度を超えるネストが含まれている文書は拒否されます。 値が 0 の場合、ネストの深さの制限はありません。 0 に設定した場合、操作の結果ではネストの深さが返されません。 デフォルト値は 512 です。 |
整数 |
| 最大幅 | いいえ | (オプション) 解析操作で受け入れられるペイロードの最大幅です。
値は、0 から 65535 の範囲で入力してください。 最大幅を超える幅の文書は拒否されます。 値が 0 の場合、幅の制限はありません。 0 に設定した場合、操作の結果では文書の幅は返されません。 デフォルト値は 4096 です。 |
整数 |
| 名前の最大長 | いいえ | (オプション) 解析操作で受け入れられる文書内の名前の最大長 (バイト数) です。
長さには、XML の場合はタグの間、JSON の場合は引用符間にある空白文字が含まれます。 値は、0 から 8192 の範囲で入力します。 名前の長さが最大長を超えると、文書は拒否されます。 値が 0 の場合、名前の長さの制限はありません。 0 に設定した場合、操作の結果では文書の名前長が返されません。 デフォルト値は 256 です。 |
整数 |
| 値の最大長 | いいえ | (オプション) 解析操作で受け入れられる文書内の値の最大長 (バイト数) です。
長さには、XML の場合はタグの間、JSON の場合は引用符間にある空白文字が含まれます。 値は、0 から 5368709121 の範囲で入力します。 値の長さが最大長を超えると、文書は拒否されます。 値が 0 の場合、値の長さの制限はありません。 0 に設定した場合、操作の結果では文書の値の長さが返されません。 デフォルト値は 8192 です。 |
整数 |
| 固有の名前の最大数 | いいえ | (オプション) 解析操作で受け入れられる JSON 文書または XML 文書内の固有名の最大数です。
0 から 1048575 の範囲の値を入力します。 文書内の固有名の数が最大数を超えると、文書は拒否されます。 値が 0 の場合、固有名の数の制限はありません。 0 に設定した場合、操作の結果では文書内の固有名の数が返されません。 デフォルト値は 1024 です。 |
整数 |
| 固有の接頭部の最大数 | いいえ | (オプション) 解析操作で受け入れられる、文書内の固有の XML 名前空間接頭部の最大数です。 この制限では、同じ名前空間に定義された複数の接頭部をカウントしますが、単一の接頭部の下で入力文書の別個の部分に定義された複数の名前空間はカウントしません。 0 から 262143 の範囲の値を入力します。 文書内の固有接頭部の数が最大数を超えると、文書は拒否されます。 値が 0 の場合、固有接頭部の数の制限はありません。 0 に設定した場合、操作の結果では文書内の固有接頭部の数が返されません。 デフォルト値は 1024 です。 |
整数 |
| 固有名前空間の最大数 | いいえ | (オプション) 解析操作で受け入れられる固有の XML 名前空間 URI の最大数です。 この制限では、すべての XML 名前空間を (その名前空間を宣言するために使用された接頭部の数を問わず) カウントします。 値は、0 から 65535 の範囲で入力してください。 文書中の固有名前空間の数が最大数を超えると、文書は拒否されます。 値が 0 の場合、固有名前空間の数の制限はありません。 0 に設定した場合、操作の結果では文書内の固有名前空間の数が返されません。 デフォルト値は 1024 です。 |
整数 |
| 数値最大長 | いいえ | (オプション) JSON のラベル/値のペアの値部分の最大バイト数です (その値が数値の場合)。 数値は、空白文字を含まない連続バイト・ストリングでなければなりません。 負符号、および正または負の指数を数値に含めることができます。 0 から 256 の範囲の値を入力してください。 文書中の数値の長さが最大長を超えると、文書は拒否されます。 値が 0 の場合、数値の長さの制限はありません。 0 に設定した場合、操作の結果では文書内の数値の長さが返されません。 デフォルト値は 128 です。 |
整数 |
| 解析設定リテラル構成 | いいえ | 動的オブジェクトにマージされている、シリアル化された XML または JSON プロパティーを表すリテラル・ストリング。 これらのプロパティーは、既存のデフォルトのプロパティーより優先されます。 | ストリング |
| 解析設定 URL 参照 | いいえ | 動的オブジェクトにマージされている、シリアル化された XML または JSON プロパティーの取得元となる名前付きコンテキストを表す URL。 これらのプロパティーは、既存のリテラルまたはデフォルトのプロパティーよりも優先されます。 | ストリング |
| 解析用のメッセージ | いいえ | API コンテキストでの変数の名前。 変数の body フィールドの内容が、ポリシーへの入力になります。 デフォルトの変数名はmessageです。 |
ストリング |
| 結果の解析済みデータ用のメッセージ | いいえ | API コンテキストでの変数の名前。 この変数の body フィールドの内容が、parse 操作の出力です。 構文解析された文書の構文解析メトリックを、メッセージの別の部分に格納することができます。 デフォルトの変数名は入力名と同じであるため、デフォルトでは入力メッセージが出力メッセージで上書きされます。 | ストリング |
YAML ソースを使用して、以下のオプションを設定します。
| プロパティー | 必須 | 説明 | データ・タイプ |
|---|---|---|---|
| strict-utf8-encoding | いいえ | JSON 文書の場合、文書全体にわたって厳密な UTF-8 エンコードを適用するかどうか。
デフォルト値は |
ブール値 |
- 解析ポリシーの制限
- 構文解析ポリシーの
literalプロパティは、変数やコンテキスト・パラメータをサポートしていません。 固定文字列でなければならない。
- 構文解析ポリシーの