Variabile di flusso message

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza documentazione di Apigee Edge.

L'accesso alla variabile di flusso message e alle sue proprietà dipende dal punto all'interno il flusso del proxy API in cui vi si accede. È 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 errore e possono essere utilizzati per impostare la risposta o accessibili in altri criteri che possono utilizzare il flusso come la codifica one-hot delle variabili categoriche.

Puoi utilizzare il criterioAssignMessage per assegnare valori, come 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

Durante 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');

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 delle risposte per i flussi di successo e di errore in un unico criterio, può 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 questo criterio nel normale flusso ProxyResponse e l'operazione avrà esito positivo message è disponibile in tutti i contesti.