Variabile di flusso message

Questa pagina si applica a Apigee e Apigee ibrido.

Visualizza la documentazione di Apigee Edge.

L'accesso alla variabile di flusso message e alle sue proprietà dipende dal punto all'interno del flusso proxy API in cui viene effettuato l'accesso. È disponibile in tutti i contesti, al contrario di alcuni oggetti, come request o response.

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 sono fuori ambito.

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

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

Puoi utilizzare il criterioAssignMessage per assegnare valori, ad esempio intestazioni, all'oggetto response. AssegnaMessage gestisce automaticamente il passaggio nel contesto dal flusso di richiesta/risposta al flusso di errore.

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 di risposta in base alle condizioni di esito positivo e 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');

OR

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

Tuttavia, la seguente espressione non funziona:

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 è indicato visivamente da variabili mostrate con il segno uguale e barrato.

Per impostare le intestazioni delle risposte per i flussi di successo 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 come il seguente imposta l'intestazione errore/risposta in qualsiasi contesto di flusso:

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

Puoi riutilizzare questo stesso criterio nel normale flusso ProxyResponse e avrà esito positivo perché message è disponibile in tutti i contesti.