ParsePayload policy

Policy estensibile

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Il criterio ParsePayload estrae le operazioni logiche dai payload delle richieste strutturate (come JSON-RPC 2.0) nelle variabili del flusso di messaggi. Questa funzionalità consente all'amministratore proxy di implementare la logica di routing condizionale direttamente in base ai contenuti della richiesta del client anziché ai percorsi delle risorse di base o ai parametri di ricerca.

Queste norme sono estendibili e il loro utilizzo potrebbe avere implicazioni in termini di costi o di utilizzo, a seconda della licenza Apigee. Per informazioni sui tipi di norme e sulle implicazioni di utilizzo, consulta Tipi di norme.

Elemento <ParsePayload>

Specifica le proprietà di analisi della convalida applicate ai cicli di valutazione della logica dell'applicazione.

Obbligatorio? Obbligatorio
Elemento padre n/a
Elementi secondari <Source>
<PayloadType>
<Protocol>

Sintassi

L'elemento ParsePayload utilizza la seguente sintassi:

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

Esempio

L'esempio seguente mostra una configurazione standard per la policy 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 il contesto del container di richiesta/risposta elaborato immediatamente tramite le valutazioni di runtime.

<Source>request</Source>
Attributo Descrizione Predefinito Presenza
N/D Valore del nodo di testo. Deve essere request o response. request Facoltativo

<PayloadType>

Regolano le strutture di valutazione complessive riconosciute in merito ai requisiti di trattamento dei dati.

<PayloadType>JSON-RPC-2.0</PayloadType>
Attributo Descrizione Predefinito Presenza
N/D Valore del nodo di testo. Valori supportati: JSON-RPC-2.0. N/D Obbligatorio

<Protocol>

Determina i comportamenti di formattazione corrispondenti esattamente alle dichiarazioni dell'interfaccia di destinazione.

<Protocol>MCP</Protocol>
Attributo Descrizione Predefinito Presenza
N/D Valore del nodo di testo. Valore supportato: MCP. N/D Obbligatorio

Variabili di flusso estratte

Le routine di post-parsing compilano le seguenti variabili di flusso predefinite in base al payload.

Nome variabile Descrizione
apigee.payload.operation Identificatore di esecuzione creato.
  • Per tools/call, è tools/call/{name} (ad es. tools/call/get_weather), che distingue lo strumento specifico richiamato.
  • Per tools/list, è tools/list, utilizzato quando si elencano gli strumenti disponibili senza scegliere un target specifico.
apigee.payload.json-rpc.request.method Il campo method della richiesta JSON-RPC (ad es. tools/call o tools/list).
apigee.payload.json-rpc.request.id Il campo id della richiesta JSON-RPC.
apigee.payload.json-rpc.request.params.name Il campo name all'interno di params (compilato per tools/call per identificare lo strumento).
apigee.payload.json-rpc.request.params.arguments.{arg_name} Argomenti passati nell'oggetto arguments. I valori stringa vengono archiviati direttamente; gli oggetti o gli array nidificati vengono archiviati come stringhe JSON serializzate.

Esempio

Per il seguente payload della richiesta JSON-RPC con argomenti semplici:

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

Il criterio compila le seguenti variabili:

Variabile Valore
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