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.