Política ParsePayload

Política extensível

Esta página se aplica a Apigee e à Apigee híbrida.

Confira Apigee Edge documentação.

A política ParsePayload extrai operações lógicas de payloads de solicitação estruturados (como JSON-RPC 2.0) em variáveis de fluxo de mensagens. Essa funcionalidade permite que o administrador do proxy implemente 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 as 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 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 de avaliação gerais 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 os comportamentos de formatação correspondentes 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

As rotinas de pós-análise preenchem as seguintes variáveis de fluxo predefinidas com base no payload.

Nome da variável Descrição
apigee.payload.operation Identificador de execução construído.
  • Para tools/call, é tools/call/{name} (por exemplo, tools/call/get_weather), que distingue a ferramenta específica que está sendo invocada.
  • Para tools/list, é tools/list, usado ao listar as ferramentas disponíveis sem segmentar uma específica.
apigee.payload.json-rpc.request.method O campo method da solicitação JSON-RPC (por exemplo, tools/call ou tools/list).
apigee.payload.json-rpc.request.id O campo id da solicitação JSON-RPC.
apigee.payload.json-rpc.request.params.name O campo name dentro de params (preenchido para tools/call para identificar a ferramenta).
apigee.payload.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
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