ParsePayload policy

Policy estensibile

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza Apigee Edge documentazione.

La policy 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 del proxy di implementare la logica di routing condizionale direttamente in base ai contenuti delle richieste client anziché ai percorsi delle risorse di base o parametri di ricerca.

Questa policy è una policy estensibile e il suo utilizzo potrebbe avere implicazioni sui costi o sull' utilizzo, a seconda della licenza Apigee. Per informazioni sui tipi di policy e sulle implicazioni di utilizzo, consulta Tipi di policy.

Elemento <ParsePayload>

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

Obbligatorio? Obbligatorio
Elemento principale 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>

Regola 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 che corrispondono 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

Una volta eseguita correttamente la policy, vengono inserite le variabili di flusso con il prefisso del nome dell'istanza della policy. Queste variabili seguono il pattern parsepayload.policyName.suffix, dove policyName è il valore dell' name attributo nella configurazione XML della policy. Questa convenzione di denominazione è coerente con altre policy Apigee, come VerifyAPIKey, e consente a più policy ParsePayload nello stesso proxy di mantenere spazi dei nomi delle variabili distinti.

Per una policy denominata parse-payload-mcp, vengono impostate le seguenti variabili:

Nome variabile Descrizione
parsepayload.parse-payload-mcp.operation Identificatore di esecuzione costruito.
  • 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 specificarne uno.
parsepayload.parse-payload-mcp.json-rpc.request.method Il campo method della richiesta JSON-RPC (ad es. tools/call o tools/list).
parsepayload.parse-payload-mcp.json-rpc.request.id Il campo id della richiesta JSON-RPC.
parsepayload.parse-payload-mcp.json-rpc.request.params.name Il campo name all'interno di params (inserito per tools/call per identificare lo strumento).
parsepayload.parse-payload-mcp.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
    }
  }
}

La policy inserisce le seguenti variabili:

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