Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Доступ к переменной потока message
и ее свойствам зависит от точки в потоке прокси-сервера API, в которой к ней осуществляется доступ. Он доступен во всех контекстах, тогда как некоторые объекты, такие как request
или response
, недоступны.
Варианты использования
Основной вариант использования переменной потока message
— это когда ваш прокси-сервер входит в поток ошибок: переменные потока request
и response
выходят за рамки области действия.
Например, в потоке ошибок объект response
недоступен. Вы не сможете установить заголовки ответа для объекта response
с помощью политики JavaScript , если вы находитесь в потоке ошибок. Вместо этого вы можете использовать одно из следующих действий:
Оба этих объекта доступны в потоке ошибок и могут использоваться для установки заголовков ответов из политики JavaScript или к ним можно получить доступ в других политиках, которые могут использовать переменные потока.
Вы можете использовать политику AssignMessage для назначения значений, например заголовков, объекту ответа . Assign Message автоматически обрабатывает переключение в контексте с потока запросов/ответов на поток ошибок.
Другой вариант использования переменной message
— регистрация данных ответа в PostClientFlow с помощью политики MessageLogging . Если вы используете объект message
, вы можете легко регистрировать информацию об ответе после условий успеха и ошибки в прокси-сервере.
Примеры
В потоке ошибок вы можете установить заголовок ответа из политики JavaScript , используя error
или message
. Например:
context.setVariable('error.header.FOO-1', 'error_header');
ИЛИ
context.setVariable('message.header.FOO-2', 'message_header');
Однако следующее выражение не будет работать:
context.setVariable('response.header.FOO-3', 'response_header');
В этом случае переменная response
выходит за рамки потока ошибок. (Обратите внимание, что в трассировке это визуально обозначается переменными, отображаемыми знаком равенства с косой чертой.)
Чтобы установить заголовки ответов для потоков успеха и ошибок в одной политике, вы можете использовать message
внутри политики JavaScript . Например:
<faultrules> <faultrule name="invalid_key_rule"> <step> <name>SetResponseHeaders</name> </step> <condition>(fault.name = "InvalidApiKey")</condition> </faultrule> </faultrules>
В политике код, подобный следующему, устанавливает заголовок ошибки/ответа в любом контексте потока:
context.setVariable('message.header.FOO-1', 'the header value');
Вы можете повторно использовать эту же политику в обычном потоке ProxyResponse, и это будет успешным, поскольку message
доступно из всех контекстов.