Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
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 message variabile di flusso è quando il proxy entra nel
flusso di errore: le request e response variabili di flusso non sono incluse nell'ambito.
Ad esempio, nel flusso di errore, 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 errore. In alternativa, puoi utilizzare una delle seguenti opzioni:
Entrambi questi oggetti sono disponibili nel flusso di errore e possono essere utilizzati per impostare le intestazioni della risposta da 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. Assign Message gestisce automaticamente il cambio di contesto in dal flusso di richiesta/risposta al flusso di errore.
Un altro caso d'uso per la message variabile è la registrazione dei dati di risposta in the
PostClientFlow con il criterio MessageLogging. Se utilizzi l'oggetto message,
puoi registrare senza problemi le informazioni di risposta in base alle condizioni di successo ed errore nel
proxy.
Esempi
In un flusso di errore, puoi impostare un'intestazione della risposta da un criterio JavaScript utilizzando
error o message. Ad esempio:
context.setVariable('error.header.FOO-1', 'error_header');OPPURE
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 response variabile non è inclusa nell'ambito del
flusso di errore. (Tieni presente che, in una traccia, questo è indicato visivamente dalle variabili mostrate con un segno di uguale
con una barra.)
Per impostare le intestazioni della risposta sia per i flussi di successo che per quelli di errore in un singolo 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, il codice simile al seguente imposta l'intestazione della risposta di errore in qualsiasi contesto di flusso:
context.setVariable('message.header.FOO-1', 'the header value');Puoi riutilizzare lo stesso criterio nel normale flusso ProxyResponse e avrà esito positivo perché
message è disponibile in tutti i contesti.