Variabile di flusso message

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

L'accesso alla variabile di flusso message e alle sue proprietà dipende dal punto all'interno del flusso proxy API in cui 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 entra nel flusso di errore: le variabili di flusso request e response non rientrano nell'ambito.

Ad esempio, nel flusso di errore, l'oggetto response non è disponibile. Se ti trovi nel flusso degli errori, non potrai impostare le intestazioni di risposta nell'oggetto response con il criterio JavaScript. Puoi, invece, utilizzare uno dei seguenti metodi:

Entrambi questi oggetti sono disponibili nel flusso di errore e possono essere utilizzati per impostare le intestazioni delle risposte dall'interno di un criterio JavaScript o per accedervi in altri criteri che possono utilizzare le variabili di flusso.

Puoi utilizzare il criterioAssignMessage per assegnare valori, come le intestazioni, all'oggetto response. AttributionMessage gestisce automaticamente l'opzione nel contesto, dal flusso di richiesta/risposta al flusso di errore.

Un altro caso d'uso per la variabile message è la registrazione dei dati delle risposte in PostClientFlow con le norme MessageLogging. Se utilizzi l'oggetto message, puoi registrare facilmente le informazioni relative alle risposte a seguito delle condizioni di esito positivo ed di 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');

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 del flusso di errori. Tieni presente che, in una traccia, questo viene indicato visivamente da variabili contrassegnate dal segno uguale a una barra.

Per impostare le intestazioni delle risposte per i flussi di operazione riuscita e 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 simile al seguente imposta l'intestazione errore/risposta in qualsiasi contesto del flusso:

context.setVariable('message.header.FOO-1', 'the header value');

Puoi riutilizzare questo stesso criterio nel normale flusso di ProxyResponse, ma l'operazione andrà a buon fine perché message è disponibile in tutti i contesti.