このページは Apigee と Apigee ハイブリッドに適用されます。
Apigee Edge のドキュメントを表示する
ParsePayload ポリシーは、構造化されたリクエスト ペイロード(JSON-RPC 2.0 など)から論理演算をメッセージ フロー変数に抽出します。この機能により、プロキシ管理者は、基本的なリソースパスやクエリ パラメータではなく、クライアント リクエストの内容に直接基づいて条件付きルーティング ロジックを実装できます。
このポリシーは拡張可能なポリシーであり、Apigee ライセンスによっては、このポリシーの使用によって費用や使用量に影響する場合があります。ポリシータイプと使用量への影響については、ポリシータイプをご覧ください。
<ParsePayload> 要素
アプリケーション ロジックの評価サイクルに適用される検証解析プロパティを指定します。
| 必須かどうか | 必須 |
| 親要素 | なし |
| 子要素 |
<Source><PayloadType><Protocol>
|
構文
ParsePayload 要素の構文は次のとおりです。
<ParsePayload continueOnError="[false|true]" enabled="[true|false]" name="policy_name"> <Source>request</Source> <PayloadType>JSON-RPC-2.0</PayloadType> <Protocol>MCP</Protocol> </ParsePayload>
例
次の例は、ParsePayload ポリシーの標準構成を示しています。
<ParsePayload continueOnError="false" enabled="true" name="parse-payload-mcp"> <Source>request</Source> <PayloadType>JSON-RPC-2.0</PayloadType> <Protocol>MCP</Protocol> </ParsePayload>
<Source>
ランタイム評価を通じて直ちに処理されたリクエスト/レスポンス コンテナ コンテキストを示します。
<Source>request</Source>
| 属性 | 説明 | デフォルト | 要否 |
|---|---|---|---|
| なし | テキストノードの値。request または response にする必要があります。 |
request |
省略可 |
<PayloadType>
データ処理要件に関して認識されている全体的な評価構造を管理します。
<PayloadType>JSON-RPC-2.0</PayloadType>
| 属性 | 説明 | デフォルト | 要否 |
|---|---|---|---|
| なし | テキストノードの値。サポートされる値: JSON-RPC-2.0。 |
なし | 必須 |
<Protocol>
ターゲット インターフェース宣言に正確に対応するフォーマット動作を決定します。
<Protocol>MCP</Protocol>
| 属性 | 説明 | デフォルト | 要否 |
|---|---|---|---|
| なし | テキストノードの値。サポートされている値: MCP。 |
なし | 必須 |
抽出されたフロー変数
解析後のルーチンは、ペイロードに基づいて次の事前定義されたフロー変数に値を入力します。
| 変数名 | 説明 |
|---|---|
apigee.payload.operation |
構築された実行識別子。
|
apigee.payload.json-rpc.request.method |
JSON-RPC リクエストの method フィールド(tools/call や tools/list など)。 |
apigee.payload.json-rpc.request.id |
JSON-RPC リクエストの id フィールド。 |
apigee.payload.json-rpc.request.params.name |
params 内の name フィールド(tools/call でツールを識別するために設定されます)。 |
apigee.payload.json-rpc.request.params.arguments.{arg_name} |
arguments オブジェクトで渡される引数。文字列値は直接保存されます。ネストされたオブジェクトまたは配列は、シリアル化された JSON 文字列として保存されます。 |
例
単純な引数を含む次の JSON-RPC リクエスト ペイロードの場合:
{ "jsonrpc": "2.0", "id": "req_001", "method": "tools/call", "params": { "name": "get_weather", "arguments": { "location": "San Francisco, CA", "forecast_days": 3 } } }
ポリシーは次の変数に値を設定します。
| 変数 | 値 |
|---|---|
apigee.payload.operation |
tools/call/get_weather |
apigee.payload.json-rpc.request.method |
tools/call |
apigee.payload.json-rpc.request.id |
req_001 |
apigee.payload.json-rpc.request.params.name |
get_weather |
apigee.payload.json-rpc.request.params.arguments.location |
San Francisco, CA |
apigee.payload.json-rpc.request.params.arguments.forecast_days |
3 |