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.