Справочник переменных процесса

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

В этом разделе приведена справочная информация о переменных потока.

В Apigee Edge определены следующие переменные потока:

apigee              loadbalancing        route
apiproxy            message              router
application         messageid            servicecallout
client              organization         system
current             proxy                target
environment         ratelimit            variable
error               request              virtualhost
is                  response
                               

Каждая из этих переменных описана в следующих разделах.

apigee

Вспомогательная переменная, которая предоставляет информацию о времени выполнения правила.

В таблице ниже описаны свойства переменной apigee.

Свойство Тип Чтение и запись Описание Начало области действия
apigee.metrics.policy.policy_name.timeTaken Целое число Только чтение Время выполнения правила в наносекундах. Правила

apiproxy

Описание прокси-сервера API.

В таблице ниже описаны свойства переменной apiproxy.

Свойство Тип Чтение и запись Описание Начало области действия
apiproxy.name Строка Только чтение Название прокси-сервера API. Пример: "Мой прокси-сервер". Запрос прокси-сервера
apiproxy.revision Строка Только чтение Номер ревизии прокси-сервера API. Пример: 6. Запрос прокси-сервера

Подробнее о работе с прокси API рассказывается в статье Что такое API и прокси API.

application

Контейнер для ресурса application.basepath.

В таблице ниже описаны свойства переменной application.

Свойство Тип Чтение и запись Описание Начало области действия
application.basepath Строка Только чтение Базовый путь развертывания (указывается при развертывании API). Запрос прокси-сервера

client

Приложение или система, отправившие запрос на пограничный маршрутизатор.

В таблице ниже описаны свойства переменной client.

Свойство Тип Чтение и запись Описание Начало области действия
client.cn Строка Только чтение

Общее имя, указанное в сертификате TLS/SSL, предоставленном клиентским приложением.

Запрос прокси-сервера
client.country Строка Только чтение

Страна в сертификате TLS/SSL, предоставленном клиентским приложением.

Запрос прокси-сервера
client.email.address Строка Только чтение

Адрес электронной почты в сертификате TLS/SSL, предоставленном клиентским приложением.

Запрос прокси-сервера
client.host Строка Только чтение

IP-адрес хоста HTTP, связанный с запросом, полученным ProxyEndpoint.

Запрос прокси-сервера
client.ip Строка Только чтение

IP-адрес клиента или системы, отправляющей сообщение на пограничный маршрутизатор. Например, это может быть исходный IP-адрес клиента или IP-адрес балансировщика нагрузки.

Запрос прокси-сервера
client.locality Строка Только чтение

Местоположение (город) в сертификате TLS/SSL, предоставленном клиентом.

Запрос прокси-сервера
client.organization Строка Только чтение Организация в сертификате TLS/SSL, представленном клиентом. (не обязательно совпадает с организацией в Apigee Edge). Запрос прокси-сервера
client.organization.unit Строка Только чтение

Организационное подразделение в сертификате TLS/SSL, предоставленном клиентом.

Запрос прокси-сервера
client.port Целое число Только чтение

HTTP-порт, связанный с исходным клиентским запросом к ProxyEndpoint.

Запрос прокси-сервера
client.received.end.time Строка Только чтение

Время, выраженное в виде строки, когда прокси-сервер завершил получение запроса от исходного клиента в ProxyEndpoint. Пример: Wed, 21 Aug 2013 19:16:47 UTC.

Это значение времени представляет собой строковое представление соответствующего 32-битного временного штампа. Например, временная метка "Wed, 21 Aug 2013 19:16:47 UTC" соответствует значению 1377112607413.

Запрос прокси-сервера
client.received.end.timestamp Длинный Только чтение

Временная метка, указывающая, когда прокси-сервер завершил получение запроса от исходного клиента в ProxyEndpoint. Это 64-битное целое число, содержащее количество миллисекунд, прошедших с полуночи 1 января 1970 г. (UTC).

Запрос прокси-сервера
client.received.start.time Строка Только чтение

Время, выраженное в виде строки, когда прокси-сервер начал получать запрос от исходного клиента в ProxyEndpoint. Пример: Wed, 21 Aug 2013 19:16:47 UTC

Это значение времени представляет собой строковое представление соответствующего 32-битного временного штампа. Например, временная метка "Wed, 21 Aug 2013 19:16:47 UTC" соответствует значению 1377112607413.

Запрос прокси-сервера
client.received.start.timestamp Длинный Только чтение

Временная метка, указывающая, когда прокси-сервер начал получать запрос от исходного клиента в ProxyEndpoint. Это 64-битное целое число, содержащее количество миллисекунд, прошедших с полуночи 1 января 1970 г. (UTC).

Запрос прокси-сервера
client.scheme Строка Только чтение

Возвращает http или https в зависимости от транспорта, используемого клиентским приложением для отправки запроса.

Запрос прокси-сервера
client.sent.end.time Строка Только чтение

Время, выраженное в виде строки, когда прокси-сервер завершил отправку ответа из ProxyEndpoint клиенту. Пример: "Wed, 21 Aug 2013 19:16:47 UTC".

Это строковое представление соответствующего 32-битного значения client.sent.end.timestamp. Например, временная метка "Wed, 21 Aug 2013 19:16:47 UTC" соответствует значению 1377112607413.

PostClientFlow
client.sent.end.timestamp Длинный Только чтение Значение временной метки, указывающее, когда ProxyEndpoint завершил возврат ответа исходному клиентскому приложению. Это 64-разрядное целое число, содержащее количество миллисекунд, прошедших с полуночи 1 января 1970 г. по UTC. PostClientFlow
client.sent.start.time Строка Только чтение Время, выраженное в виде строки, когда ProxyEndpoint начал возвращать ответ исходному клиентскому приложению. Пример: "Wed, 21 Aug 2013 19:16:47 UTC".

Это строковое представление соответствующего 32-битного значения client.sent.start.timestamp. Например, временная метка "Wed, 21 Aug 2013 19:16:47 UTC" соответствует значению 1377112607413.

PostClientFlow
client.sent.start.timestamp Длинный Только чтение Время, когда прокси-сервер начал отправлять ответ клиенту из ProxyEndpoint. Это значение представляет собой 64-битовое целое число, содержащее количество миллисекунд, прошедших с полуночи 1 января 1970 г. (UTC). PostClientFlow
client.ssl.enabled Строка Только чтение

"true", если ProxyEndpoint настроен для TLS/SSL; в противном случае – "false".

Запрос прокси-сервера
client.state Строка Только чтение

Штат в сертификате TLS/SSL, предоставленном клиентом.

Запрос прокси-сервера

current

Содержит информацию о текущем потоке прокси API.

В таблице ниже описаны свойства переменной current.

Свойство Тип Чтение и запись Описание Начало области действия
current.flow.name Строка Только чтение Название выполняемого в данный момент потока (например, PreFlow, PostFlow или название условного потока). Запрос прокси-сервера
current.flow.description Строка Только чтение Описание выполняемого процесса. Это то же значение, что и у элемента <Description> в XML-конфигурации потока. Запрос прокси-сервера

Эти свойства можно посмотреть в представлении трассировки в интерфейсе Edge. Однако по умолчанию эти свойства не видны в представлении трассировки классического интерфейса.

environment

Контейнер для ресурса environment.name.

В таблице ниже описаны свойства переменной environment.

Свойство Тип Чтение и запись Описание Начало области действия
environment.name Строка Только чтение Название среды, в которой выполнялась транзакция. Запрос прокси-сервера

error

Контекстный объект, представляющий сообщение об ошибке в процессе обработки ошибок.

В таблице ниже описаны свойства переменной error.

Свойство Тип Чтение и запись Описание Начало области действия
error message Чтение и запись Ошибка типа message, которая является контекстным объектом в потоке ошибок. Ошибка
error.content Строка Чтение и запись Содержание ошибки. Ошибка
error.message Строка Только чтение

Сообщение, связанное с ошибкой. Его значение доступно только до выполнения потока ошибок.

Ошибка
error.status.code Целое число Только чтение

Код статуса HTTP, связанный с ошибкой. Пример: 400.

Ошибка
error.reason.phrase Строка Только чтение

Фраза, связанная с ошибкой. Пример: "Неверный запрос".

Ошибка
error.transport.message TransportMessage Только чтение

Любая ошибка типа TransportMessage.

Ошибка
error.state Целое число Только чтение

Состояние в потоке, в котором произошла ошибка.

Ошибка
error.header.header_name Строка Чтение и запись

Получение или установка заголовка ответа.

Ошибка

fault

Переменная потока, для которой задается код ошибки времени выполнения, когда правило вызывает ошибку. Значения кодов ошибок зависят от правил.

Свойство Тип Чтение и запись Описание Начало области действия
fault.fault_name Строка Только чтение fault_name – название ошибки, как оно указано в таблице Ошибки выполнения, которая есть в каждом разделе Справочника по правилам. Ошибка

is

Контейнер для ресурса is.error.

В таблице ниже описаны свойства переменной is.

Свойство Тип Чтение и запись Описание Начало области действия
is.error Логическое значение Только чтение

Флаг ошибки.

Запрос прокси-сервера

loadbalancing

Содержит информацию о статусе балансировки нагрузки TargetEndpoint.

В таблице ниже описаны свойства переменной loadbalancing.

Свойство Тип Чтение и запись Описание Начало области действия
loadbalancing.failedservers Массив строк Только чтение

Список TargetServer, которые не удалось сбалансировать при балансировке нагрузки в TargetEndpoint.

Целевой ответ
loadbalancing.isfallback Логическое значение Только чтение

"true", если для TargetServer, вызванного во время балансировки нагрузки в TargetEndpoint, включен резервный режим.

Целевой ответ
loadbalancing.targetserver Строка Только чтение

TargetServer, вызванный во время балансировки нагрузки в TargetEndpoint. Указывается, только если при определении элемента балансировщика нагрузки задан элемент <Path>.

Целевой ответ

message

Контекстный объект с тем же значением, что и request в потоке запроса, response в потоке ответа или error в потоке ошибки.

В таблице ниже описаны свойства переменной message.

Свойство Тип Чтение и запись Описание Начало области действия
message message Чтение и запись

Контекстный объект с тем же значением, что и request в запросе Flow, response в ответе Flow или error в потоке Error.

Запрос прокси-сервера
message.content Строка Чтение и запись

Содержание запроса, ответа или сообщения об ошибке.

Запрос прокси-сервера
message.formparam.param_name Строка Чтение и запись

Значение указанного параметра формы.

Запрос прокси-сервера
message.formparam.param_name.
 values
Коллекция Только чтение

Все значения указанного параметра формы в письме.

Запрос прокси-сервера
message.formparam.param_name.
 values.count
Целое число Только чтение

Количество значений указанных параметров формы в сообщении./p>

Запрос прокси-сервера
message.formparams.count Целое число Только чтение

Количество всех параметров формы в письме.

Запрос прокси-сервера
message.formparams.names Коллекция Только чтение

Значение всех параметров формы в сообщении.

Запрос прокси-сервера
message.formstring Строка Только чтение

Значение строки формы в письме.

Запрос прокси-сервера
message.header.header_name Строка Чтение и запись

Получает или задает значение указанного HTTP-заголовка в письме. Если в заголовке есть запятая, при чтении вы получите только часть текста до первой запятой. Если вам нужен весь заголовок, используйте форму request.header.header_name.
 values
.

Запрос прокси-сервера
message.header.header_name.N Строка Чтение и запись

Значение N-го заголовка в сообщении (запросе или ответе) в зависимости от состояния потока. Apigee Edge разделяет текстовые значения заголовков запятыми. Обратите внимание, что индекс, значение которого используется для N, начинается с 1, а не с 0.

Например, если заголовок Cache-control имеет значение "public,maxage=16544", то возвращаемое значение message.header.cache-control.1 будет "maxage=16544".

Запрос прокси-сервера
message.header.header_name.
 values
Коллекция Только чтение

Все значения указанного заголовка HTTP в письме.

Запрос прокси-сервера
message.header.header_name.
 values.count
Целое число Только чтение

Количество значений указанного заголовка HTTP в письме.

Запрос прокси-сервера
message.headers.count Целое число Только чтение

Количество всех заголовков HTTP в письме.

Запрос прокси-сервера
message.headers.names Коллекция Только чтение

Значение всех HTTP-заголовков в письме

Запрос прокси-сервера
message.path Строка Чтение и запись

Полный путь сообщения запроса в URL, за исключением параметров запроса.

Запрос прокси-сервера
message.queryparam.param_name Строка Только чтение

Возвращает указанный параметр запроса сообщения.

Запрос прокси-сервера
message.queryparam.param_name.N Строка Чтение и запись

Значение параметра запроса Nth в сообщении. Например, если request.querystring имеет значение "a=hello&a=world", то функция message.queryparam.a.1 вернет значение "hello".

Например, если вы хотите указать несколько значений для одного параметра запроса, например "type=siteid:1&type=language:us-en&type=currency:USD", задайте следующие значения:

  • message.queryparam.type.1: новое значение – "siteid:1".
  • message.queryparam.type.2 на "language:en-us"
  • message.queryparam.type.3 к "currency:USD"
Запрос прокси-сервера
message.queryparam.param_name.
 values
Коллекция Только чтение

Все значения определенного параметра запроса в сообщении, отформатированные как список, разделенный запятыми.

Например, если строка запроса – a=hello&a=world, то значение message.queryparam.a.values будет "['hello', 'world']".

Запрос прокси-сервера
message.queryparam.param_name.
 values.count
Целое число Только чтение

Общее количество указанных параметров запроса, связанных с запросом, отправленным в ProxyEndpoint из клиентского приложения.

Запрос прокси-сервера
message.queryparams.count Целое число Только чтение

Общее количество всех параметров запроса, связанных с запросом, отправленным в ProxyEndpoint из клиентского приложения.

Запрос прокси-сервера
message.queryparams.names Коллекция Только чтение

Список всех названий параметров запроса, связанных с запросом, отправленным в ProxyEndpoint из клиентского приложения.

Чтобы перебрать названия параметров запроса с помощью JavaScript, ознакомьтесь с записью в сообществе Apigee: Как перебрать коллекцию из "request.queryparams.names" в JS? в сообществе Apigee.

Запрос прокси-сервера
message.querystring Строка Только чтение

Строка, содержащая все названия и значения параметров запроса, связанные с запросом, отправленным в ProxyEndpoint из клиентского приложения.

Например, для запроса http://api.apifactory.com/inventors?name=nick&surname=danger значением message.querystring будет "name=nick&surname=danger".

Запрос прокси-сервера
message.reason.phrase Строка Только чтение

ReasonPhrase ответного сообщения от целевого объекта.

Целевой ответ
message.status.code Целое число Только чтение

Код статуса HTTP сообщения ответа от целевого сервиса.

Целевой ответ
message.transport.message TransportMessage Только чтение

Сообщение типа TransportMessage, которое является контекстным объектом.

Запрос прокси-сервера
message.uri Строка Только чтение

Полный путь URI (после URL домена), включая параметры запроса.

Например, для запроса "http://api.apifactory.com/inventors?name=nikola&surname=tesla" эта переменная возвращает значение "inventors?name=nikola&surname=tesla".

Запрос прокси-сервера
message.verb Строка Только чтение

HTTP-команда (GET, PUT, POST, DELETE и т. д.), связанная с запросом.

Запрос прокси-сервера
message.version Строка Чтение и запись

Версия HTTP, связанная с запросом, отправленным в ProxyEndpoint из клиентского приложения.

Запрос прокси-сервера

Дополнительную информацию о сообщениях можно найти в справочнике по функциям шаблонов сообщений.

messageid

Контейнер для уникального идентификатора запроса.

В таблице ниже описаны свойства переменной messageid.

Свойство Тип Чтение и запись Описание Начало области действия
messageid Строка Только чтение

Содержит уникальный идентификатор запроса, включающий имя хоста маршрутизатора. Этот идентификатор позволяет отслеживать запросы, полученные маршрутизатором, после того, как они будут отправлены обработчику сообщений.

Этот идентификатор регистрируется в журналах ошибок Edge, чтобы сопоставить messageid с ошибками.

Запрос прокси-сервера

organization

Контейнер для ресурса organization.name.

В таблице ниже описаны свойства переменной organization.

Свойство Тип Чтение и запись Описание Начало области действия
organization.name Строка Только чтение

Название организации.

Запрос прокси-сервера

Подробнее об организациях…

proxy

Конфигурация прокси-сервера API.

В таблице ниже описаны свойства переменной proxy.

Свойство Тип Чтение и запись Описание Начало области действия
proxy.basepath Строка Только чтение

Значение базового пути в конфигурации прокси API. Базовый путь – это фрагмент URI, который следует за хостом в URL. URI условных потоков следуют базовому пути.

В URL http://myorg-test.apigee.net/v2/weatherapi/forecastrss?w=12797282":

  • Хост – myorg-test.apigee.net (включает название организации и среды).
  • Базовый путь – "/v2/weatherapi".

Узнать об этом можно, только посмотрев определение прокси-сервера API или проверив значение переменной proxy.basepath. Суффикс пути прокси-сервера следует за базовым путем ("/forecastrss") и любыми параметрами запроса.

Если в конфигурации прокси API задан динамический базовый путь, например "/v2/*/weatherapi", то эта переменная будет иметь значение динамического пути ("/v2/*/weatherapi"), даже если базовый путь разрешается в статическое значение, например "/v2/foo/weatherapi".

Запрос прокси-сервера
proxy.client.ip Строка Только чтение

Адрес X-Forwarded-For входящего звонка, который представляет собой IP-адрес, полученный Edge от последнего внешнего рукопожатия TCP. Это может быть вызывающий клиент или балансировщик нагрузки.

Запрос прокси-сервера
proxy.name Строка Только чтение

Атрибут name, настроенный для ProxyEndpoint.

Запрос прокси-сервера
proxy.pathsuffix Строка Только чтение

Значение суффикса базового пути прокси-сервера API, отправленное клиентом и полученное в ProxyEndpoint.

Базовый путь – это компонент пути, который однозначно идентифицирует прокси-сервер API. Публичный URL прокси-сервера API состоит из названия организации, среды, в которой развернут прокси-сервер, базового пути, суффикса базового пути и любых параметров запроса.

Например, в запросе к http://myorg-test.apigee.net/v2/weatherapi/forecastrss?w=12797282 суффикс базового пути – "/forecastrss".

Запрос прокси-сервера
proxy.url Строка Только чтение

Возвращает полный URL, связанный с запросом прокси, полученным ProxyEndpoint, включая все параметры запроса. Если прокси-сервер вызывается с помощью <LocalTargetConnection> для выполнения цепочки прокси-серверов, хостом URL всегда будет localhost.

Пример создания URL request с использованием исходного хоста приведен в разделе Запросы на доступ.

Запрос прокси-сервера

Подробнее о работе с прокси API рассказывается в статье Что такое API и прокси API.

ratelimit

Заполняется при выполнении правил квоты или ограничения скачков.

В таблице ниже описаны свойства переменной ratelimit.

Свойство Тип Чтение и запись Описание Начало области действия
ratelimit.policy_name.allowed.count Длинный Только чтение Возвращает разрешенное количество квот. PostClientFlow
ratelimit.policy_name.used.count Длинный Только чтение Возвращает текущую квоту, использованную в интервале квоты. PostClientFlow
ratelimit.policy_name.available.count Длинный Только чтение Возвращает количество доступных квот в интервале квоты. PostClientFlow
ratelimit.policy_name.exceed.count Длинный Только чтение Возвращает значение 1, если квота превышена. PostClientFlow
ratelimit.policy_name.total.exceed.count Длинный Только чтение Возвращает значение 1, если квота превышена. PostClientFlow
ratelimit.policy_name.expiry.time Длинный Только чтение

Возвращает время UTC (в миллисекундах), когда истекает квота и начинается новый интервал квоты.

Если для правила квоты задан тип rollingwindow, это значение недопустимо, поскольку интервал квоты не истекает.

PostClientFlow
ratelimit.policy_name.identifier Строка Только чтение Возвращает ссылку на идентификатор (клиента), прикрепленный к правилу. PostClientFlow
ratelimit.policy_name.class.allowed.count Длинный Только чтение Возвращает количество разрешенных квот, заданное в классе. PostClientFlow
ratelimit.policy_name.class.used.count Длинный Только чтение Возвращает использованную квоту в классе. PostClientFlow
ratelimit.policy_name.class.available.count Длинный Только чтение Возвращает количество доступных квот в классе. PostClientFlow
ratelimit.policy_name.class.exceed.count Длинный Только чтение Возвращает количество запросов, превышающее лимит в классе в текущем интервале квоты. PostClientFlow
ratelimit.policy_name.class.total.exceed.count Длинный Только чтение Возвращает общее количество запросов, превышающих лимит в классе, за все интервалы квоты. Это сумма значений class.exceed.count для всех интервалов квоты. PostClientFlow
ratelimit.policy_name.failed Логическое значение Только чтение

Указывает, не удалось ли применить правило (true или false).

PostClientFlow

Дополнительную информацию можно найти в следующих источниках:

request

Полный запрос, включая все полезные данные.

Подробнее о данных запроса можно узнать в статье Как данные запроса передаются на серверную часть?

В таблице ниже описаны свойства переменной request.

Свойство Тип Чтение и запись Описание Начало области действия
request message Только чтение

Полный запрос, включая все полезные данные.

Запрос прокси-сервера
request.content Строка Чтение и запись

Получает или задает полезную нагрузку запроса.

Запрос прокси-сервера
request.formparam.param_name Строка Чтение и запись

Получает или задает значение указанного параметра формы в запросе, отправленном из клиентского приложения.

Запрос прокси-сервера
request.formparam.param_name.
 values
Коллекция Только чтение

Все значения определенного параметра формы в запросе, отформатированные как список, разделенный запятыми.

Например, если полезная нагрузка имеет вид "a=hello&x=greeting&a=world", то значение request.formparam.a.values будет "['hello', 'world']".

Запрос прокси-сервера
request.formparam.param_name.
 values.count
Целое число Только чтение

Количество всех значений указанного параметра формы, связанных с запросом.

Запрос прокси-сервера
request.formparam.param_name.N Строка Чтение и запись

Значение N-го параметра формы в сообщении. Например, если строка формы имеет вид "a=hello&a=world", то возвращаемое значение request.formparam.a.1 будет равно "hello".

Запрос прокси-сервера
request.formparams.count Целое число Только чтение

Количество всех параметров формы, связанных с запросом, отправленным из клиентского приложения.

Запрос прокси-сервера
request.formparams.names Коллекция Только чтение

Список всех названий параметров формы, связанных с запросом.

Запрос прокси-сервера
request.formstring Строка Только чтение

Полный тег formparam в запросе, отправленном из клиентского приложения.

Например, "name=test&type=first&group=A".

Запрос прокси-сервера
request.header.header_name Строка Чтение и запись

Получает или задает значение определенного заголовка, найденного в запросе. Если в заголовке есть запятая, при чтении вы получите только часть текста до первой запятой.

Если вам нужен весь заголовок, используйте форму request.header.header_name.values.

Запрос прокси-сервера
request.header.header_name.N Строка Чтение и запись

Значение N-го заголовка в запросе. Apigee Edge разделяет значения заголовков запятыми. Обратите внимание, что индекс, значение которого используется для N, начинается с 1, а не с 0.

Например, если заголовок Cache-control имеет значение "public, maxage=16544", то функция request.header.cache-control.1 вернет значение "maxage=16544".

Запрос прокси-сервера
request.header.header_name.
 values
Коллекция Только чтение

Все значения определенного заголовка в запросе.

Запрос прокси-сервера
request.header.header_name.
 values.count
Целое число Только чтение

Количество всех значений определенного заголовка в запросе.

Запрос прокси-сервера
request.headers.count Целое число Только чтение

Количество всех заголовков в запросе.

Запрос прокси-сервера
request.headers.names Коллекция Только чтение

Названия всех заголовков в запросе.

Запрос прокси-сервера
request.path Строка Только чтение

Путь к ресурсу без прокси-сервера (без учета хоста) для бэкенд-службы, исключая параметры запроса.

Например, если URI бэкенд-службы – "https://example.com/rest/api/latest", то значением request.path будет "/rest/api/latest".

Запрос прокси-сервера
request.queryparam.param_name Строка Чтение и запись

Значение определенного параметра запроса, найденного в запросе.

Запрос прокси-сервера
request.queryparam.param_name.N Строка Чтение и запись

Значение параметра запроса Nth в запросе.

Например, если request.querystring – "a=hello&a=world", то возвращаемое значение request.queryparam.a.1 – "hello".

Например, если вы хотите указать несколько значений для одного параметра запроса, например "type=siteid:1&type=language:us-en&type=currency:USD", задайте следующие значения:

  • request.queryparam.type.1: новое значение – "siteid:1".
  • request.queryparam.type.2 на "language:en-us"
  • request.queryparam.type.3 к "currency:USD"
Запрос прокси-сервера
request.queryparam.param_name.
 values
Коллекция Только чтение

Все значения определенного параметра запроса в запросе, отформатированные как список, разделенный запятыми.

Например, если request.querystring – "a=hello&b=lovely&a=world", то значением request.queryparam.a.values будет "['hello', 'world']".

Запрос прокси-сервера
request.queryparam.param_name.
 values.count
Целое число Только чтение

Количество всех значений определенного параметра запроса в запросе.

Запрос прокси-сервера
request.queryparams.count Целое число Только чтение

Количество всех параметров запроса.

Запрос прокси-сервера
request.queryparams.names Коллекция Только чтение

Названия всех параметров запроса.

Чтобы перебрать названия параметров запроса с помощью JavaScript, ознакомьтесь со статьей Как перебрать коллекцию из "request.queryparams.names" в JS? в сообществе Apigee.

Запрос прокси-сервера
request.querystring Строка Только чтение

Полный список параметров запроса, отправленного из клиентского приложения.

Например, если запрос имеет вид "http://host.com/123?name=first&surname=second&place=address", то эта переменная возвращает значение "name=first&surname=second&place=address".

Запрос прокси-сервера
request.transportid Строка Только чтение

Идентификатор запроса в виде объекта TransportMessage, который является контекстным объектом.

Запрос прокси-сервера
request.transport.message Transport-Message Только чтение

Запрос типа TransportMessage, который является контекстным объектом.

Запрос прокси-сервера
request.uri Строка Только чтение

В прокси-сервере API прокси-путь <BasePath> в ProxyEndpoint (в дополнение к базовому URL прокси-сервера) сопоставляется с URL целевого сервиса в TargetEndpoint. Пример:

<ProxyEndpoint>
...
  <BasePath>/my-mock-proxy</BasePath>

На что указывает

<TargetEndpoint>
...
  <HTTPTargetConnection>
    http://mocktarget.apigee.net
  </HTTPTargetConnection>

В запросе request.uri – это базовый путь прокси-сервера + остаток адреса, включая параметры запроса.

В ответе request.uri – это остаток адреса, включая параметры запроса, после HTTPTargetConnection.

Это связано с тем, что исходный запрос поступил на прокси-сервер, а затем прокси-сервер отправил другой запрос целевому сервису.

Предположим, что к нашему образцу прокси-сервера с базовым путем "/my-mock-proxy" выполняется следующий вызов:

http://my_org-test.apigee.net/my-mock-proxy/user?user=Dude

Прокси-сервер вызывает:

http://mocktarget.apigee.net

который добавляет к этому URL строку "/user?user=Dude".

  • Запрос: request.uri = "/my-mock-proxy/user?user=Dude"
  • Ответ: request.uri = "/user?user=Dude"
Запрос прокси-сервера (отличается ответом)
request.url Строка Только чтение

Полный URL запроса, отправленного в целевую конечную точку, включая параметры строки запроса, но без номера порта (если он указан).

Например, если вы вызываете образец прокси-сервера "http://my_org-test.apigee.net/my-mock-proxy/user?user=Dude", а целевая конечная точка – "http://example.com:8080", то значение будет следующим:

  • Запрос: н/д
  • Ответ: "http://example.com/user?user=Dude"
Целевой ответ
request.verb Строка Только чтение

Глагол HTTP, использованный в запросе. Примеры: GET, PUT и DELETE.

Запрос прокси-сервера
request.version Строка Только чтение

Версия HTTP-запроса. Пример: 1.1.

Запрос прокси-сервера

response

Полный ответ, включая полезную нагрузку.

В таблице ниже описаны свойства переменной response.

Свойство Тип Чтение и запись Описание Начало области действия
response message Чтение и запись

Полный ответ, возвращенный целевым сервисом.

Целевой ответ
response.content Строка Чтение и запись

Содержимое полезной нагрузки ответного сообщения, возвращенного целевым объектом.

Целевой ответ
response.formparam.param_name Строка Чтение и запись

Значение параметра формы в ответе.

Целевой ответ
response.formparam.param_name.
 values.count
Целое число Только чтение

Количество всех значений указанного параметра формы в ответе.

Целевой ответ
response.formparams.count Целое число Только чтение

Количество всех параметров формы в ответе.

Целевой ответ
response.formparams.names Коллекция Только чтение

Названия всех параметров формы в ответе.

Целевой ответ
response.header.header_name Строка Чтение и запись

Получает или задает значение указанного заголовка HTTP в ответе.

Если в тексте заголовка есть запятая, Apigee Edge распознает несколько значений. В этом случае функция response.header.header_name возвращает только первое значение.

Чтобы прочитать весь заголовок, используйте форму response.header.header_name.values.

Целевой ответ
response.header.header_name.
 values
Коллекция Только чтение

Все значения указанного заголовка HTTP в ответе.

Целевой ответ
response.header.header_name.
 values.count
Целое число Только чтение

Количество всех значений указанного заголовка HTTP в ответе.

Целевой ответ
response.header.header_name.N Строка Чтение и запись

Значение N-го заголовка в ответе. Apigee Edge разделяет значения заголовков запятыми. Обратите внимание, что индекс, значение которого используется для N, начинается с 1, а не с 0.

Например, если заголовок Cache-control имеет значение "public, maxage=16544", то функция response.header.cache-control.1 вернет значение "maxage=16544".

Целевой ответ
response.headers.count Целое число Только чтение

Количество всех заголовков в ответе.

Целевой ответ
response.headers.names Коллекция Только чтение

Названия всех заголовков в ответе.

Целевой ответ
response.reason.phrase Строка Чтение и запись

Фраза с причиной ответа на определенный запрос.

Целевой ответ
response.status.code Целое число Чтение и запись

Код ответа, возвращенный для запроса. С помощью этой переменной можно переопределить код статуса ответа, который хранится в message.status.code. Дополнительную информацию вы найдете здесь: message.

Целевой ответ
response.transport.message Строка Только чтение

Ответ типа TransportMessage, который является контекстным объектом.

Целевой ответ

route

Указывает названия <RouteRule> и TargetEndpoint.

В таблице ниже описаны свойства переменной route.

Свойство Тип Чтение и запись Описание Начало области действия
route.name Строка Только чтение

Название <RouteRule>, которое было выполнено в ProxyEndpoint. Пример: "default". RouteRule ссылается на TargetEndpoint прокси-сервера API для выполнения.

Целевой запрос
route.target Строка Только чтение

Название выполненной конечной точки целевого сервиса. Пример: default.

Целевой запрос

router

Контейнер для устаревшего свойства router.uuid.

В таблице ниже описаны свойства переменной router.

Свойство Тип Чтение и запись Описание Начало области действия
router.uuid Строка Только чтение

Устаревший метод, возвращающий значение NULL. (Ранее – UUID роутера, обрабатывающего прокси.)

Запрос прокси-сервера

servicecallout

Описывает TargetEndpoint для правила вызова сервиса.

В таблице ниже описаны свойства переменной servicecallout.

Свойство Тип Чтение и запись Описание Начало области действия
servicecallout.policy_name.expectedcn Строка Чтение и запись

Ожидаемое общее имя TargetEndpoint, указанное в правиле ServiceCallout. Это имеет смысл, только если TargetEndpoint относится к конечной точке TLS/SSL.

Запрос прокси-сервера
servicecallout.policy_name.target.url Строка Чтение и запись

URL TargetEndpoint для определенного правила ServiceCallout.

Запрос прокси-сервера
servicecallout.requesturi Строка Чтение и запись

URI TargetEndpoint для правила ServiceCallout policy. URI – это URL TargetEndpoint без протокола и спецификации домена.

Запрос прокси-сервера

system

Указывает IP-адрес системы, а также сведения о прокси-сервере.

В таблице ниже описаны свойства переменной system.

Свойство Тип Чтение и запись Описание Начало области действия
system.interface.interface_name Строка Только чтение

IP-адрес системы.

Запрос прокси-сервера
system.pod.name Строка Только чтение

Название пода, в котором работает прокси-сервер.

Запрос прокси-сервера
system.region.name Строка Только чтение

Название центра обработки данных региона, в котором работает прокси-сервер.

Запрос прокси-сервера
system.time Строка Только чтение

Время, когда была прочитана эта переменная. Пример: "Wed, 21 Aug 2013 19:16:47 UTC".

Это строковое представление соответствующего значения атрибута "цена" system.timestamp. Например, "Wed, 21 Aug 2013 19:16:47 UTC" соответствует временной метке "1377112607413".

Запрос прокси-сервера
system.time.year Целое число Только чтение

Год в дате system.time.

Запрос прокси-сервера
system.time.month Целое число Только чтение

Месяц в дате system.time.

Запрос прокси-сервера
system.time.day Целое число Только чтение

День месяца в system.time.

Запрос прокси-сервера
system.time.dayofweek Целое число Только чтение

День недели в формате system.time.

Запрос прокси-сервера
system.time.hour Целое число Только чтение

Часть времени system.time, обозначающая час.

Запрос прокси-сервера
system.time.minute Целое число Только чтение

Минутная часть значения system.time.

Запрос прокси-сервера
system.time.second Целое число Только чтение

Вторая часть system.time.

Запрос прокси-сервера
system.time.millisecond Целое число Только чтение

Миллисекунды в значении system.time.

Запрос прокси-сервера
system.time.zone Строка Только чтение

Часовой пояс системы.

Запрос прокси-сервера
system.timestamp Длинный Только чтение

64-битное целое число (long), представляющее время, когда была прочитана эта переменная. Значение – это количество миллисекунд, прошедших с полуночи 1 января 1970 г. (UTC). Пример: "1534783015000".

Запрос прокси-сервера
system.uuid Строка Только чтение

UUID обработчика сообщений, который управляет прокси-сервером.

Запрос прокси-сервера

target

Описывает цель запроса.

В таблице ниже описаны свойства переменной target.

Свойство Тип Чтение и запись Описание Начало области действия
target.basepath Строка Только чтение

Путь к ресурсу (без домена) целевого сервиса, исключая параметры запроса, который определен в TargetEndpoint прокси.

Предположим, что прокси-сервер API вызывает следующий целевой сервис:

<TargetEndpoint name="default">
...
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net/user?user=Dude</URL>
  </HTTPTargetConnection>

В этом примере target.basepath – это "/user".

Если бы целевой показатель был таким:

<TargetEndpoint name="default">
...
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
  </HTTPTargetConnection>

Значение target.basepath будет равно null.

Целевой запрос
target.copy.pathsuffix Логическое значение Чтение и запись

Если задано значение true, запрос, перенаправленный из ProxyEndpoint в TargetEndpoint, сохраняет суффикс пути (фрагмент пути URI, следующий за URI, определенным в базовом пути ProxyEndpoint).

Целевой запрос
target.copy.queryparams Логическое значение Чтение и запись

Если задано значение true, запрос, перенаправленный из ProxyEndpoint в TargetEndpoint, сохраняет параметры запроса.

Целевой запрос
target.country Строка Только чтение

Страна, указанная в сертификате TLS/SSL, предоставленном целевым сервером

Целевой ответ
target.cn Строка Только чтение

Стандартное название TargetEndpoint. Это имеет смысл, только если TargetEndpoint относится к конечной точке TLS/SSL.

Целевой запрос
target.email.address Строка Только чтение

Адрес электронной почты сертификата TLS/SSL, предоставленного целевым сервером.

Целевой ответ
target.expectedcn Строка Чтение и запись

Ожидаемое общее название TargetEndpoint. Это имеет смысл, только если TargetEndpoint относится к конечной точке TLS/SSL.

Запрос прокси-сервера
target.host Строка Только чтение

Доменное имя целевого сервиса, возвращающего ответ прокси-серверу API.

Целевой ответ
target.ip Строка Только чтение

IP-адрес целевого сервиса, возвращающего ответ прокси-серверу API.

Целевой ответ
target.locality Строка Только чтение

Местоположение (город) сертификата TLS/SSL, предоставленного целевым сервером

Целевой ответ
target.name Строка Только чтение

Цель, в которую сообщение поступает из целевой конечной точки.

Целевой запрос
target.organization Строка Только чтение

Организация, указанная в сертификате TLS/SSL, предоставленном целевым сервером.

Целевой ответ
target.organization.unit Строка Только чтение

Организационное подразделение сертификата TLS/SSL, предоставленного целевым сервером.

Целевой ответ
target.port Целое число Только чтение

Номер порта целевого сервиса, возвращающего ответ прокси-серверу API.

Целевой ответ
target.received.end.time Строка Только чтение

Время, выраженное в виде строки, в которое TargetEndpoint завершил получение ответа от целевого сервиса. Пример: "Wed, 21 Aug 2013 19:16:47 UTC".

Это значение времени представляет собой строковое представление соответствующего 32-битного временного штампа. Например, временная метка "Wed, 21 Aug 2013 19:16:47 UTC" соответствует значению "1377112607413".

Целевой ответ
target.received.end.
  timestamp
Длинный Только чтение

Значение временной метки, указывающее, когда TargetEndpoint завершил получение ответа от целевого сервиса. Пример: "1534783015000". Это 64-разрядное целое число, указывающее количество миллисекунд, прошедших с полуночи 1 января 1970 г. по всемирному координированному времени.

Целевой ответ
target.received.start.time Строка Только чтение

Время, выраженное в виде строки, когда TargetEndpoint начал получать ответ от целевого сервиса. Пример: "Wed, 21 Aug 2013 19:16:47 UTC".

Это значение времени представляет собой строковое представление соответствующего 32-битного временного штампа. Например, временная метка "Wed, 21 Aug 2013 19:16:47 UTC" соответствует значению "1377112607413".

Целевой ответ
target.received.start.
  timestamp
Длинный Только чтение

Временная метка, указывающая, когда TargetEndpoint начал получать ответ от целевого сервиса. Пример: "1534783015000". Это 64-разрядное целое число, указывающее количество миллисекунд, прошедших с полуночи 1 января 1970 г. по всемирному координированному времени.

Целевой ответ
target.scheme Строка Только чтение

Начало области действия: целевой ответ
Тип: строка
Разрешение: чтение/запись

Возвращает http или https в зависимости от сообщения запроса.

Целевой запрос
target.sent.end.time Строка Только чтение

Время, выраженное в виде строки, когда прокси-сервер перестал отправлять запрос на URL, указанный в TargetEndpoint. Пример: "Wed, 21 Aug 2013 19:16:47 UTC".

Это значение времени представляет собой строковое представление соответствующего 32-битного временного штампа. Например, временная метка "Wed, 21 Aug 2013 19:16:47 UTC" соответствует значению "1377112607413".

Целевой запрос
target.sent.end.timestamp Длинный Только чтение

Временная метка, указывающая, когда прокси-сервер завершил отправку запроса по URL, указанному в TargetEndpoint. Пример: "1377112607413". Это 64-битное целое число (long), содержащее количество миллисекунд, прошедших с полуночи 1 января 1970 г. (UTC).

Целевой запрос
target.sent.start.time Строка Только чтение

Время, выраженное в виде строки, в которое прокси-сервер начал отправлять запрос на URL, указанный в TargetEndpoint. Пример: "Wed, 21 Aug 2013 19:16:47 UTC".

Это значение времени представляет собой строковое представление соответствующего 32-битного временного штампа. Например, временная метка "Wed, 21 Aug 2013 19:16:47 UTC" соответствует значению "1377112607413".

Целевой запрос
target.sent.start.timestamp Длинный Только чтение

Временная метка, указывающая, когда прокси-сервер начал отправлять запрос по URL, указанному в TargetEndpoint. Пример: "1534783015000". Это 64-битное целое число (long), указывающее количество миллисекунд, прошедших с полуночи 1 января 1970 г. (UTC).

Целевой запрос
target.ssl.enabled Логическое значение Только чтение

Указывает, работает ли TargetEndpoint по протоколу TLS/SSL.

Запрос прокси-сервера
target.state Строка Только чтение

Статус сертификата TLS/SSL, предоставленного целевым сервером.

Целевой ответ
target.url Строка Чтение и запись

URL, настроенный в XML-файле TargetEndpoint, или динамический целевой URL (если target.url задан во время потока сообщений). Переменная не содержит дополнительных элементов пути или параметров запроса. Возвращает нулевое значение, если вызывается вне области действия или не задано.

Целевой запрос

variable

Контейнер для ресурса variable.expectedcn.

В таблице ниже описаны свойства переменной variable.

Свойство Тип Чтение и запись Описание Начало области действия
variable.expectedcn Строка Чтение и запись

Переменная, доступная для общего названия, если оно работает по протоколу TLS/SSL.

Запрос прокси-сервера

Подробнее о TLS/SSL…

virtualhost

Содержит сведения о виртуальном хосте.

В таблице ниже описаны свойства переменной virtualhost.

Свойство Тип Чтение и запись Описание Начало области действия
virtualhost.aliases.values Массив строк Только чтение

Псевдонимы хоста виртуального хоста, который был задействован при определенном запросе.

Запрос прокси-сервера
virtualhost.name Строка Только чтение

Название виртуального хоста, который обслуживает исходный запрос клиента.

Запрос прокси-сервера
virtualhost.ssl.enabled Логическое значение Только чтение

Возвращает значение "true", если в конфигурации виртуального хоста включен TLS/SSL.

Запрос прокси-сервера

Подробнее о том, как настроить виртуальные хосты…