Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza documentazione di Apigee Edge.
L'accesso alla variabile di flusso message
e alle relative proprietà dipende dal punto all'interno del flusso del proxy API in cui viene eseguito 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 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. Non
potrà impostare le intestazioni delle risposte sull'oggetto response
con il criterio JavaScript
se ti trovi nel flusso di errore. Puoi utilizzare invece una delle seguenti opzioni:
Entrambi questi oggetti sono disponibili nel flusso di errori e possono essere utilizzati per impostare le intestazioni di risposta da un criterio JavaScript o essere accessibili in altri criteri che possono utilizzare le variabili di flusso.
Puoi utilizzare il regolamento AssignMessage per assegnare valori, ad esempio intestazioni, all'oggetto response. AssegnaMessage gestisce automaticamente l'opzione in contesto dal flusso di richiesta/risposta al flusso di errore.
Un altro caso d'uso per la variabile message
è registrare i dati delle risposte nel
PostClientFlow con il criterio MessageLogging. 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 da variabili contrassegnate da un uguale a
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 errore/risposta in qualsiasi contesto di flusso:
context.setVariable('message.header.FOO-1', 'the header value');
Puoi riutilizzare lo stesso criterio nel normale flusso di ProxyResponse e l'operazione andrà a buon fine perché
message
è disponibile in tutti i contesti.