Справочник по переменным потока

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

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

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.

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

Укажите этап процесса, на котором произошла ошибка.

Ошибка
error.header. header_name Нить Чтение/Запись

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

Ошибка

fault

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

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

is

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

В следующей таблице описаны свойства переменной ` is :

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

Флаг ошибки.

Запрос через прокси

loadbalancing

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

В следующей таблице описаны свойства переменной loadbalancing :

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

Список неработающих целевых серверов во время балансировки нагрузки на целевой конечной точке.

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

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

Целевой ответ
loadbalancing.targetserver Нить Только для чтения

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

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

message

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

В следующей таблице описаны свойства переменной message :

Свойство Тип Чтение/Запись Описание Начало области применения
message message Чтение/Запись

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

Запрос через прокси
message.content Нить Чтение/Запись

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

Запрос через прокси
message.formparam. param_name Нить Чтение/Запись

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

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

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

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

Подсчет значений указанных параметров формы в сообщении.

Запрос через прокси
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 Нить Чтение/Запись

Значение N-го параметра запроса в сообщении. Например, если 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 to "siteid:1"
  • message.queryparam.type.2 to "language:en-us"
  • message.queryparam.type.3 to "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, являющееся контекстным объектом.

Запрос через прокси
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 Нить Только для чтения

Значение параметра Base Path в конфигурации вашего 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, включая все присутствующие параметры запроса. Хост URL-адреса всегда будет localhost если прокси вызывается с помощью <LocalTargetConnection> для выполнения цепочки прокси .

Пример формирования URL-адреса request с использованием исходного хоста см. в разделе «Сообщения запроса доступа» .

Запрос через прокси

Для получения дополнительной информации о работе с API-прокси см. раздел «Понимание API и API-прокси» .

ratelimit

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

В следующей таблице описаны свойства переменной 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 Логический Только для чтения

Указывает, потерпела ли политика неудачу (верно или неверно).

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 Нить Чтение/Запись

Значение N-го параметра запроса.

Например, если 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 to "siteid:1"
  • request.queryparam.type.2 to "language:en-us"
  • request.queryparam.type.3 to "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 Транспортное сообщение Только для чтения

Запрос типа 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". Правило маршрутизации ссылается на целевой объект API-прокси для выполнения.

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

Имя целевой точки (TargetEndpoint), которая была выполнена. Например, "default".

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

router

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

В следующей таблице описаны свойства переменной router :

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

Устарело и возвращает null. (Ранее это был UUID маршрутизатора, обрабатывающего прокси.)

Запрос через прокси

servicecallout

Описывает целевую конечную точку (TargetEndpoint) для политики ServiceCallout .

В следующей таблице описаны свойства переменной servicecallout :

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

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

Запрос через прокси
servicecallout. policy_name .target.url Нить Чтение/Запись

URL-адрес целевой конечной точки для конкретной политики ServiceCallout .

Запрос через прокси
servicecallout.requesturi Нить Чтение/Запись

URI целевой точки (TargetEndpoint) для политики ServiceCallout . URI представляет собой URL целевой точки без указания протокола и домена.

Запрос через прокси

system

Указывает IP-адрес системы, а также подробную информацию о прокси-сервере.

В следующей таблице описаны свойства system переменной:

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

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

Запрос через прокси
system.pod.name Нить Только для чтения

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

Запрос через прокси
system.region.name Нить Только для чтения

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

Запрос через прокси
system.time Нить Только для чтения

Время, когда эта переменная была считана. Например, "Ср, 21 авг 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-битное (длинное) целое число, представляющее время считывания этой переменной. Значение — это количество миллисекунд, прошедших с полуночи 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 Логический Чтение/Запись

When "true", request forwarded from ProxyEndpoint to TargetEndpoint retains query parameters.

Target request
target.country Нить Только для чтения

Country of the TLS/SSL certificate presented by the target server

Target response
target.cn Нить Только для чтения

The Common Name of the TargetEndpoint. This is meaningful only when the TargetEndpoint refers to a TLS/SSL endpoint.

Target request
target.email.address Нить Только для чтения

Email address of the TLS/SSL certificate presented by the target server

Target response
target.expectedcn Нить Read/Write

The expected Common Name of the TargetEndpoint. This is meaningful only when the TargetEndpoint refers to a TLS/SSL endpoint.

Proxy request
target.host Нить Только для чтения

The domain name of the target service returning the response to the API proxy.

Target response
target.ip Нить Только для чтения

The IP address of the target service returning the response to the API proxy.

Target response
target.locality Нить Только для чтения

Locality (city) of the TLS/SSL certificate presented by the target server

Target response
target.name Нить Только для чтения

Target to which message is reaching from targetendpoint.

Target request
target.organization Нить Только для чтения

Organization of the TLS/SSL certificate presented by the target server.

Target response
target.organization.unit Нить Только для чтения

Organization unit of the TLS/SSL certificate presented by the target server.

Target response
target.port Целое число Read only

The port number of the target service returning the response to the API proxy.

Target response
target.received.end.time Нить Read only

The time, expressed in string form, at which the TargetEndpoint finished receiving the response from the target. For example, "Wed, 21 Aug 2013 19:16:47 UTC".

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, "Wed, 21 Aug 2013 19:16:47 UTC" corresponds to the timestamp value of "1377112607413"..

Target response
target.received.end.
timestamp
Длинный Read only

The timestamp value specifying when the TargetEndpoint finished receiving the response from the target. For example, "1534783015000". This value is a 64-bit (long) integer specifying the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Target response
target.received.start.time Нить Read only

The time, expressed in string form, at which the TargetEndpoint started receiving the response from the target. For example, "Wed, 21 Aug 2013 19:16:47 UTC".

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, "Wed, 21 Aug 2013 19:16:47 UTC" corresponds to the timestamp value of "1377112607413".

Target response
target.received.start.
timestamp
Длинный Read only

The timestamp value specifying when the TargetEndpoint started receiving the response from the target. For example, "1534783015000". This value is a 64-bit (long) integer specifying the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Target response
target.scheme Нить Read only

Scope begins : Target response
Type : String
Permission : Read/Write

Returns http or https depending on the request message.

Target request
target.sent.end.time Нить Read only

The time, expressed in string form, at which the proxy stopped sending the request to the URL specified in the TargetEndpoint. For example, "Wed, 21 Aug 2013 19:16:47 UTC".

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, "Wed, 21 Aug 2013 19:16:47 UTC" corresponds to the timestamp value of "1377112607413".

Target request
target.sent.end.timestamp Длинный Read only

The timestamp value specifying when the proxy finished sending the request to the URL specified in the TargetEndpoint. For example, "1377112607413". This value is a 64-bit (long) integer containing the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Target request
target.sent.start.time Нить Read only

The time, expressed in string form, at which the proxy began sending the request to the URL specified in the TargetEndpoint. For example, "Wed, 21 Aug 2013 19:16:47 UTC".

This time value is the string representation of the corresponding 32-bit timestamp quantity. For example, "Wed, 21 Aug 2013 19:16:47 UTC" corresponds to the timestamp value of "1377112607413".

Target request
target.sent.start.timestamp Длинный Read only

The timestamp value specifying when the proxy started sending the request to the URL specified in the TargetEndpoint. For example, "1534783015000". This value is a 64-bit (long) integer specifying the number of milliseconds elapsed since midnight, on January 1, 1970 UTC.

Target request
target.ssl.enabled Логический Read only

Whether TargetEndpoint is running on TLS/SSL.

Proxy request
target.state Нить Read only

State of the TLS/SSL certificate presented by the target server.

Target response
target.url Нить Read/Write

The URL configured in the TargetEndpoint XML file or the dynamic target URL (if target.url is set during the message flow). The variable does not include any additional path elements or query parameters. Returns null if called out of scope or otherwise unset.

Target request

variable

A container for the variable.expectedcn property.

The following table describes the properties of the variable variable:

Свойство Тип Read/Write Описание Scope begins
variable.expectedcn Нить Read/Write

Variable exposed for the common name if it's running on TLS/SSL.

Proxy request

For more information on working with TLS, see the TLS/SSL introduction .

virtualhost

Specifies details about the virtual host.

The following table describes the properties of the virtualhost variable:

Свойство Тип Read/Write Описание Scope begins
virtualhost.aliases.values Array of Strings Read only

Host aliases of the virtual host that is hit during a particular request.

Proxy request
virtualhost.name Нить Read only

Name of the virtual host that serves the originating client request.

Proxy request
virtualhost.ssl.enabled Логический Read only

Returns "true" if TLS/SSL is enabled in the virtual host configuration.

Proxy request

For more information on working with virtual hosts, see Configuring virtual hosts .