ParsePayload ポリシー

標準ポリシー

このページは ApigeeApigee ハイブリッドに適用されます。

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 構築された実行識別子。
  • tools/call の場合は tools/call/{name}tools/call/get_weather など)で、呼び出される特定のツールを区別します。
  • tools/list の場合は tools/list です。これは、特定のツールを対象とせずに利用可能なツールを一覧表示する場合に使用されます。
apigee.payload.json-rpc.request.method JSON-RPC リクエストの method フィールド(tools/calltools/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