Política ParsePayload

Política estándar

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

La política ParsePayload extrae operaciones lógicas de cargas útiles de solicitudes estructuradas (como JSON-RPC 2.0) en variables de flujo de mensajes. Esta funcionalidad permite que el administrador del proxy implemente lógica de enrutamiento condicional directamente en función del contenido de la solicitud del cliente, en lugar de rutas de recursos o parámetros de consulta básicos.

Esta política es una política extensible, y el uso de esta política puede tener implicaciones de costo o uso, según tu licencia de Apigee. Para obtener información sobre los tipos de políticas y sus implicaciones de uso, consulta Tipos de políticas.

Elemento <ParsePayload>

Especifica las propiedades de análisis de validación que se aplican a los ciclos de evaluación de la lógica de la aplicación.

¿Es obligatorio? Obligatorio
Elemento principal n/a
Elementos secundarios <Source>
<PayloadType>
<Protocol>

Sintaxis

El elemento ParsePayload usa la siguiente sintaxis:

<ParsePayload continueOnError="[false|true]" enabled="[true|false]" name="policy_name">
    <Source>request</Source>
    <PayloadType>JSON-RPC-2.0</PayloadType>
    <Protocol>MCP</Protocol>
</ParsePayload>

Ejemplo

En el siguiente ejemplo, se muestra una configuración estándar para la 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 el contexto del contenedor de solicitud o respuesta que se procesa de inmediato a través de evaluaciones del entorno de ejecución.

<Source>request</Source>
Atributo Descripción Predeterminado Presencia
N/A Es el valor del nodo de texto. Debe ser request o response. request Opcional

<PayloadType>

Rige las estructuras generales de evaluación reconocidas en relación con los requisitos de procesamiento de datos.

<PayloadType>JSON-RPC-2.0</PayloadType>
Atributo Descripción Predeterminado Presencia
N/A Es el valor del nodo de texto. Valores admitidos: JSON-RPC-2.0 N/A Obligatorio

<Protocol>

Determina los comportamientos de formato que corresponden con precisión a las declaraciones de la interfaz de destino.

<Protocol>MCP</Protocol>
Atributo Descripción Predeterminado Presencia
N/A Es el valor del nodo de texto. Valor admitido: MCP. N/A Obligatorio

Variables de flujo extraídas

Las rutinas posteriores al análisis completan las siguientes variables de flujo predefinidas según la carga útil.

Nombre de la variable Descripción
apigee.payload.operation Es el identificador de ejecución construido.
  • En el caso de tools/call, es tools/call/{name} (p.ej., tools/call/get_weather), que distingue la herramienta específica que se invoca.
  • En el caso de tools/list, es tools/list, que se usa cuando se enumeran las herramientas disponibles sin segmentar para una específica.
apigee.payload.json-rpc.request.method El campo method de la solicitud JSON-RPC (p.ej., tools/call o tools/list).
apigee.payload.json-rpc.request.id Es el campo id de la solicitud JSON-RPC.
apigee.payload.json-rpc.request.params.name El campo name dentro de params (se completa para que tools/call identifique la herramienta).
apigee.payload.json-rpc.request.params.arguments.{arg_name} Son los argumentos que se pasan en el objeto arguments. Los valores de cadena se almacenan directamente; los objetos o arrays anidados se almacenan como cadenas JSON serializadas.

Ejemplo

Para la siguiente carga útil de solicitud de JSON-RPC con argumentos simples:

{
  "jsonrpc": "2.0",
  "id": "req_001",
  "method": "tools/call",
  "params": {
    "name": "get_weather",
    "arguments": {
      "location": "San Francisco, CA",
      "forecast_days": 3
    }
  }
}

La política propaga las siguientes variables:

Variable 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