variabile di flusso del messaggio

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

L'accesso alla variabile di flusso message e alle sue proprietà dipende dal punto all'interno del flusso proxy API in cui si esegue l'accesso. È disponibile in tutti i contesti, mentre alcuni oggetti, come request o response, non lo sono.

Casi d'uso

Il caso d'uso principale per la variabile di flusso message si verifica quando il proxy entra nel flusso di errori: le variabili di flusso request e response non rientrano nell'ambito.

Ad esempio, nel flusso di errori, l'oggetto response non è disponibile. Se ti trovi nel flusso di errori, non potrai impostare intestazioni di risposta nell'oggetto response con i criteri JavaScript. Puoi invece utilizzare una delle seguenti opzioni:

Entrambi questi oggetti sono disponibili nel flusso di errore e possono essere utilizzati per impostare le intestazioni delle risposte dall'interno di un criterio JavaScript o per accedervi in altri criteri che possono utilizzare variabili di flusso.

Puoi utilizzare il criterioAssignMessage per assegnare valori, ad esempio le intestazioni, all'oggetto response. Assegna Messaggio gestisce automaticamente il cambio nel contesto, dal flusso di richiesta/risposta al flusso di errori.

Un altro caso d'uso per la variabile message è registrare i dati delle risposte in PostClientFlow con il criterio MessageLogging. Se utilizzi l'oggetto message, puoi registrare senza problemi le informazioni relative alle risposte seguendo sia le condizioni di esito positivo che di errore nel proxy.

Esempi

In un flusso di errore, puoi impostare un'intestazione della risposta da un criterio JavaScript utilizzando error o message. Ad esempio:

context.setVariable('error.header.FOO-1', 'error_header');

OPPURE

context.setVariable('message.header.FOO-2', 'message_header');

La seguente espressione, tuttavia, non funzionerà:

context.setVariable('response.header.FOO-3', 'response_header');

In questo caso, la variabile response non rientra nell'ambito del flusso di errori. Tieni presente che, in una traccia, questo viene indicato visivamente da variabili mostrate con un segno uguale barrato.

Per impostare intestazioni di risposta per i flussi di operazione riuscita e di errore in un unico criterio, puoi utilizzare message all'interno di un criterio JavaScript. Ad esempio:

<faultrules>
  <faultrule name="invalid_key_rule">
    <step>
      <name>SetResponseHeaders</name>
    </step>
    <condition>(fault.name = "InvalidApiKey")</condition>
  </faultrule>
</faultrules>

Nel criterio, un codice simile al seguente imposta l'intestazione errore/risposta in qualsiasi contesto del flusso:

context.setVariable('message.header.FOO-1', 'the header value');

Puoi riutilizzare questo stesso criterio nel normale flusso di ProxyResponse, che verrà eseguito correttamente perché message è disponibile in tutti i contesti.