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 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 entra nel flusso di errori: le variabili di flusso request
e response
non rientrano nell'ambito.
Ad esempio, nel flusso di errori, l'oggetto response
non è disponibile. Non potrai
impostare le intestazioni della risposta sull'oggetto response
con il criterio JavaScript
se ti trovi nel flusso di errori. In alternativa, puoi utilizzare uno dei seguenti metodi:
Entrambi questi oggetti sono disponibili nel flusso di errori e possono essere utilizzati per impostare le intestazioni della risposta all'interno di un criterio JavaScript o per accedervi in altri criteri che possono utilizzare le variabili di flusso.
Puoi utilizzare il criterio AssignMessage per assegnare valori, ad esempio intestazioni, all'oggetto response. AssignMessage gestisce automaticamente il cambio di contesto dal flusso richiesta/risposta al flusso di errori.
Un altro caso d'uso per la variabile message
è la registrazione dei dati di risposta in
PostClientFlow con il criterio 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');
La seguente espressione, tuttavia, non funzionerà:
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 un segno di uguale
con una barra che lo attraversa.
Per impostare le intestazioni di risposta per i flussi di successo e di errore in un'unica norma, puoi
utilizzare message
all'interno di una norma JavaScript. Ad esempio:
<faultrules> <faultrule name="invalid_key_rule"> <step> <name>SetResponseHeaders</name> </step> <condition>(fault.name = "InvalidApiKey")</condition> </faultrule> </faultrules>
Nella policy, un codice come il seguente imposta l'intestazione di errore/risposta in qualsiasi contesto di flusso:
context.setVariable('message.header.FOO-1', 'the header value');
Puoi riutilizzare questa stessa policy nel normale flusso ProxyResponse e l'operazione andrà a buon fine perché
message
è disponibile in tutti i contesti.