本頁內容適用於 Apigee 和 Apigee 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>
| 屬性 | 說明 | 預設 | 狀態 |
|---|---|---|---|
| 不適用 | 文字節點值。必須是 request 或 response。 |
request |
選用 |
<PayloadType>
管理與資料處理規定相關的整體評估架構。
<PayloadType>JSON-RPC-2.0</PayloadType>
| 屬性 | 說明 | 預設 | 狀態 |
|---|---|---|---|
| 不適用 | 文字節點值。支援的值:JSON-RPC-2.0。 |
不適用 | 必填 |
<Protocol>
決定與目標介面宣告完全對應的格式設定行為。
<Protocol>MCP</Protocol>
| 屬性 | 說明 | 預設 | 狀態 |
|---|---|---|---|
| 不適用 | 文字節點值。支援的值:MCP。 |
不適用 | 必填 |
擷取的流程變數
剖析後常式會根據酬載填入下列預先定義的流程變數。
| 變數名稱 | 說明 |
|---|---|
apigee.payload.operation |
建構的執行作業 ID。
|
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 |