Variable für den Nachrichtenfluss

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

Der Zugriff auf die Flussvariable message und ihre Attribute hängt davon ab, an welcher Stelle im API-Proxy-Ablauf sie aufgerufen wird. Sie ist in allen Kontexten verfügbar, Objekte wie request oder response sind es aber nicht.

Anwendungsfälle

Der Hauptanwendungsfall für die message-Ablaufvariable ist, wenn Ihr Proxy in den Fehlerablauf tritt: die Ablaufvariablen request und response sind außerhalb des zulässigen Bereichs.

Im Fehlerablauf ist beispielsweise das Objekt response nicht verfügbar. Sie können keine Antwort-Header für das response-Objekt mit der JavaScript-Richtlinie festlegen, wenn Sie sich im Fehlerablauf befinden. Verwenden Sie stattdessen eine der folgenden Optionen:

Beide Objekte sind im Fehlerablauf verfügbar und können zum Festlegen von Antwortheadern aus einer JavaScript-Richtlinie verwendet werden oder in anderen Richtlinien, die Ablaufvariablen verwenden.

Mit der AssignMessage-Richtlinie können Sie dem response-Objekt Werte zuweisen, z. B. Header. AssignMessage bearbeitet automatisch den Kontextwechsel vom Anfrage-/Antwort-Ablauf zum Fehlerablauf.

Ein weiterer Anwendungsfall für die Variable message besteht darin, Logs für Antwortdaten im PostClientFlow mit der MessageLogging-Richtlinie zu erstellen. Wenn Sie das Objekt message verwenden, können Sie Logs für Antwortinformationen nahtlos sowohl im Erfolgs- als auch im Fehlerfall im Proxy erstellen.

Beispiele

In einem Fehlerablauf können Sie entweder mit error oder message einen Antwort-Header aus einer JavaScript-Richtlinie festlegen. , um die Option zu aktivieren. Beispiel:

context.setVariable('error.header.FOO-1', 'error_header');

OR

context.setVariable('message.header.FOO-2', 'message_header');

Der folgende Ausdruck funktioniert jedoch nicht:

context.setVariable('response.header.FOO-3', 'response_header');

In diesem Fall ist die Variable response außerhalb des Fehlerablaufs. (Beachten Sie, dass in einem Trace dies durch Variablen dargestellt wird, die mit einem Gleichheitszeichen mit einem Schrägstrich gekennzeichnet sind.)

Um Antwortheader für erfolgreiche und Fehlerabläufe in einer einzigen Richtlinie festzulegen, können Sie message in einer JavaScript-Richtlinie verwenden. Beispiel:

<faultrules>
  <faultrule name="invalid_key_rule">
    <step>
      <name>SetResponseHeaders</name>
    </step>
    <condition>(fault.name = "InvalidApiKey")</condition>
  </faultrule>
</faultrules>

In der Richtlinie legt ein Code wie dieser den Fehler-/Antwortheader in einem beliebigen Ablaufkontext fest:

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

Sie können diese Richtlinie für den normalen ProxyResponse-Ablauf erfolgreich wiederverwenden, da message in allen Kontexten verfügbar ist.