Esta página se aplica à Apigee e à Apigee híbrida.
Confira a documentação da
Apigee Edge.
A política ParsePayload extrai operações lógicas de payloads de solicitação estruturados (como JSON-RPC 2.0) para variáveis de fluxo de mensagens. Com essa funcionalidade, o administrador de proxy pode implementar a lógica de roteamento condicional diretamente com base no conteúdo da solicitação do cliente, em vez de caminhos de recursos básicos ou parâmetros de consulta.
Esta é uma política extensível. O uso dela pode ter implicações no custo ou na utilização, dependendo da sua licença da Apigee. Para informações sobre tipos de política e implicações de uso, consulte Tipos de política.
Elemento <ParsePayload>
Especifica propriedades de análise de validação aplicadas aos ciclos de avaliação da lógica do aplicativo.
| Obrigatório? | Obrigatório |
| Elemento pai | n/a |
| Elementos filhos |
<Source><PayloadType><Protocol>
|
Sintaxe
O elemento ParsePayload usa a seguinte sintaxe:
<ParsePayload continueOnError="[false|true]" enabled="[true|false]" name="policy_name"> <Source>request</Source> <PayloadType>JSON-RPC-2.0</PayloadType> <Protocol>MCP</Protocol> </ParsePayload>
Exemplo
O exemplo a seguir mostra uma configuração padrão para a política ParsePayload:
<ParsePayload continueOnError="false" enabled="true" name="parse-payload-mcp"> <Source>request</Source> <PayloadType>JSON-RPC-2.0</PayloadType> <Protocol>MCP</Protocol> </ParsePayload>
<Source>
Indica o contexto do contêiner de solicitação/resposta processado imediatamente por avaliações de tempo de execução.
<Source>request</Source>
| Atributo | Descrição | Padrão | Presença |
|---|---|---|---|
| N/A | Valor do nó de texto. Precisa ser request ou response. |
request |
Opcional |
<PayloadType>
Governa as estruturas gerais de avaliação reconhecidas em relação aos requisitos de tratamento de dados.
<PayloadType>JSON-RPC-2.0</PayloadType>
| Atributo | Descrição | Padrão | Presença |
|---|---|---|---|
| N/A | Valor do nó de texto. Valores aceitos: JSON-RPC-2.0. |
N/A | Obrigatório |
<Protocol>
Determina comportamentos de formatação que correspondem precisamente às declarações de interface de destino.
<Protocol>MCP</Protocol>
| Atributo | Descrição | Padrão | Presença |
|---|---|---|---|
| N/A | Valor do nó de texto. Valor compatível: MCP. |
N/A | Obrigatório |
Variáveis de fluxo extraídas
Depois que a política é executada, ela preenche variáveis de fluxo com o prefixo do nome da instância da política. Essas variáveis seguem o padrão
parsepayload.policyName.suffix,
em que policyName é o valor do atributo
name na configuração XML da política. Essa convenção de nomenclatura é consistente com outras políticas da Apigee, como VerifyAPIKey, e permite que várias políticas ParsePayload no mesmo proxy mantenham namespaces de variáveis distintos.
Para uma política chamada parse-payload-mcp, as seguintes variáveis são definidas:
| Nome da variável | Descrição |
|---|---|
parsepayload.parse-payload-mcp.operation |
Identificador de execução construído.
|
parsepayload.parse-payload-mcp.json-rpc.request.method |
O campo method da solicitação JSON-RPC (por exemplo, tools/call ou tools/list). |
parsepayload.parse-payload-mcp.json-rpc.request.id |
O campo id da solicitação JSON-RPC. |
parsepayload.parse-payload-mcp.json-rpc.request.params.name |
O campo name dentro de params (preenchido para tools/call identificar a ferramenta). |
parsepayload.parse-payload-mcp.json-rpc.request.params.arguments.{arg_name} |
Argumentos transmitidos no objeto arguments. Os valores de string são armazenados diretamente. Objetos ou matrizes aninhados são armazenados como strings JSON serializadas. |
Exemplo
Para o seguinte payload de solicitação JSON-RPC com argumentos simples:
{ "jsonrpc": "2.0", "id": "req_001", "method": "tools/call", "params": { "name": "get_weather", "arguments": { "location": "San Francisco, CA", "forecast_days": 3 } } }
A política preenche as seguintes variáveis:
| Variável | Valor |
|---|---|
parsepayload.parse-payload-mcp.operation |
tools/call/get_weather |
parsepayload.parse-payload-mcp.json-rpc.request.method |
tools/call |
parsepayload.parse-payload-mcp.json-rpc.request.id |
req_001 |
parsepayload.parse-payload-mcp.json-rpc.request.params.name |
get_weather |
parsepayload.parse-payload-mcp.json-rpc.request.params.arguments.location |
San Francisco, CA |
parsepayload.parse-payload-mcp.json-rpc.request.params.arguments.forecast_days |
3 |