Variabile di flusso message

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.