ParsePayload 政策

標準政策

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

ParsePayload 政策會從結構化要求酬載 (例如 JSON-RPC 2.0) 中擷取邏輯運算,並存入訊息流程變數。這項功能可讓 Proxy 管理員直接根據用戶端要求內容 (而非基本資源路徑或查詢參數) 實作條件式路由邏輯。

這項政策是可擴充政策,使用這項政策可能會產生費用或影響用量,具體情況取決於您的 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>
屬性 說明 預設 狀態
不適用 文字節點值。必須是 requestresponse request 選用

<PayloadType>

管理與資料處理規定相關的整體評估架構。

<PayloadType>JSON-RPC-2.0</PayloadType>
屬性 說明 預設 狀態
不適用 文字節點值。支援的值:JSON-RPC-2.0 不適用 必填

<Protocol>

決定與目標介面宣告完全對應的格式設定行為。

<Protocol>MCP</Protocol>
屬性 說明 預設 狀態
不適用 文字節點值。支援的值:MCP 不適用 必填

擷取的流程變數

剖析後常式會根據酬載填入下列預先定義的流程變數。

變數名稱 說明
apigee.payload.operation 建構的執行作業 ID。
  • 如果是 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