Règle ParsePayload

Conditions standards

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d' Apigee Edge.

La règle ParsePayload extrait les opérations logiques des charges utiles de requêtes structurées (telles que JSON-RPC 2.0) dans les variables de flux de messages. Cette fonctionnalité permet à l'administrateur du proxy d'implémenter une logique de routage conditionnel directement basée sur le contenu des requêtes client, plutôt que sur des chemins de ressources ou des paramètres de requête de base.

Cette règle est une règle extensible et son utilisation peut avoir des conséquences sur le coût ou l'utilisation, en fonction de votre licence Apigee. Pour en savoir plus sur les types de règles et les implications en termes d'utilisation, consultez la section Types de règles.

Élément <ParsePayload>

Spécifie les propriétés d'analyse de validation appliquées aux cycles d'évaluation de la logique d'application.

Obligatoire ? Obligatoire
Élément parent N/A
Éléments enfants <Source>
<PayloadType>
<Protocol>

Syntaxe

L'élément ParsePayload utilise la syntaxe suivante :

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

Exemple

L'exemple suivant montre une configuration standard pour la règle ParsePayload :

<ParsePayload continueOnError="false" enabled="true" name="parse-payload-mcp">
    <Source>request</Source>
    <PayloadType>JSON-RPC-2.0</PayloadType>
    <Protocol>MCP</Protocol>
</ParsePayload>

<Source>

Indique le contexte du conteneur de requête/réponse traité immédiatement par le biais d'évaluations d'exécution.

<Source>request</Source>
Attribut Description Par défaut Présence
N/A Valeur du nœud de texte. La valeur doit être request ou response. request Facultatif

<PayloadType>

Régit les structures d'évaluation globales reconnues concernant les exigences de traitement des données.

<PayloadType>JSON-RPC-2.0</PayloadType>
Attribut Description Par défaut Présence
N/A Valeur du nœud de texte. Valeurs acceptées : JSON-RPC-2.0. N/A Obligatoire

<Protocol>

Détermine les comportements de mise en forme correspondant précisément aux déclarations d'interface cible.

<Protocol>MCP</Protocol>
Attribut Description Par défaut Présence
N/A Valeur du nœud de texte. Valeur acceptée : MCP. N/A Obligatoire

Variables de flux extraites

Les routines d'analyse remplissent les variables de flux prédéfinies suivantes en fonction de la charge utile.

Nom de la variable Description
apigee.payload.operation Identifiant d'exécution construit.
  • Pour tools/call, il s'agit de tools/call/{name} (par exemple, tools/call/get_weather), qui permet de distinguer l'outil spécifique appelé.
  • Pour tools/list, il s'agit de tools/list, utilisé pour lister les outils disponibles sans en cibler un en particulier.
apigee.payload.json-rpc.request.method Champ method de la requête JSON-RPC (par exemple, tools/call ou tools/list).
apigee.payload.json-rpc.request.id Champ id de la requête JSON-RPC.
apigee.payload.json-rpc.request.params.name Champ name dans params (renseigné pour tools/call afin d'identifier l'outil).
apigee.payload.json-rpc.request.params.arguments.{arg_name} Arguments transmis dans l'objet arguments. Les valeurs de chaîne sont stockées directement. Les objets ou tableaux imbriqués sont stockés sous forme de chaînes JSON sérialisées.

Exemple

Pour la charge utile de la requête JSON-RPC suivante avec des arguments simples :

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

La règle renseigne les variables suivantes :

Variable Valeur
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