Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la 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 della variabile di flusso message
si verifica quando il proxy entra nel flusso di errori: le variabili di flusso request
e response
non sono coperte.
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. In alternativa, puoi utilizzare 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. 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 MessageLogging. Se utilizzi l'oggetto message
,
puoi registrare senza problemi le informazioni sulla risposta in base alle condizioni di successo e di 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, l'espressione seguente non funziona:
context.setVariable('response.header.FOO-3', 'response_header');
In questo caso, la variabile response
non è nell'ambito del flusso di errori. Tieni presente che, in una traccia, questo è indicato visivamente dalle variabili mostrate con un segno uguale con una barra trasversale.
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 lo stesso criterio nel normale flusso di ProxyResponse e l'operazione andrà a buon fine perché
message
è disponibile in tutti i contesti.