本页面适用于 Apigee 和 Apigee Hybrid。
查看 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 |