Variabile di flusso message

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza la documentazione di Apigee Edge.

L'accesso alla variabile di flusso message e alle sue proprietà dipende dal punto all'interno il flusso del proxy API in cui si accede. È 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 inserisce la variabile flusso di errori: le variabili di flusso request e response non rientrano nell'ambito.

Ad esempio, nel flusso di errore, l'oggetto response non è disponibile. Se sei nel flusso di errore, non potrai impostare le intestazioni di risposta sull'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 la risposta o accessibili da altri criteri che possono utilizzare il flusso come la codifica one-hot delle variabili categoriche.

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

Un altro caso d'uso della variabile message è registrare i dati di risposta in PostClientFlow con il parametro di logging dei messaggi. Se utilizzi l'oggetto message, puoi registrare facilmente le informazioni di risposta in seguito a condizioni di successo ed errore nel proxy.

Esempi

In un flusso di errori, 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 della flusso di errori. Tieni presente che, in una traccia, questo è indicato visivamente dalle variabili mostrate con un segno di uguale barrato.

Per impostare le intestazioni di risposta sia per i flussi di successo che per quelli 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 di errore/risposta in qualsiasi contesto del flusso:

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

Puoi riutilizzare questo criterio nel normale flusso ProxyResponse e l'operazione avrà esito positivo message è disponibile in tutti i contesti.