variabile di flusso del messaggio

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.