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

Вы просматриваете документацию 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. Например: Ср, 21 авг. 2013 г., 19:16:47 UTC.

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

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

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

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

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

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

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

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

Запрос прокси
client.scheme Нить Только для чтения

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

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

Время, выраженное строкой, когда прокси-сервер завершил отправку ответа от ProxyEndpoint клиенту. Например: «Ср, 21 авг. 2013 г., 19:16:47 UTC».

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

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

Это значение представляет собой строковое представление соответствующего 32-битного значения client.sent.start.timestamp . Например, «Ср, 21 авг. 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 UI. Однако в представлении «Трассировка» в Classic UI они по умолчанию не отображаются.

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 Массив строк Только для чтения

Список неисправных TargetServers во время балансировки нагрузки в TargetEndpoint.

Целевой ответ
loadbalancing.isfallback Булевое значение Только для чтения

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

Целевой ответ
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
Целое число Только для чтения

Количество значений указанных параметров формы в сообщении./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 Нить Чтение/запись

Значение 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 на "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, являющееся контекстным объектом.

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

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

Запрос прокси
proxy.pathsuffix Нить Только для чтения

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

Базовый путь (basepath) определяется как компонент пути, который однозначно идентифицирует прокси-сервер 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 :

Свойство Тип Чтение/запись Описание Область применения начинается
ограничение скорости. policy_name .разрешено.количество Длинный Только для чтения Возвращает разрешенное количество квот. PostClientFlow
ограничение скорости. policy_name .использование.количество Длинный Только для чтения Возвращает текущую квоту, используемую в пределах интервала квоты. PostClientFlow
ограничение скорости. policy_name .доступно.количество Длинный Только для чтения Возвращает доступное количество квот в интервале квот. PostClientFlow
ограничение скорости. policy_name .exceed.count Длинный Только для чтения Возвращает 1 после превышения квоты. PostClientFlow
ограничение скорости. policy_name .всего.превышения.количество Длинный Только для чтения Возвращает 1 после превышения квоты. PostClientFlow
ограничение скорости. policy_name .expiry.время Длинный Только для чтения

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

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

PostClientFlow
ограничение скорости. policy_name .идентификатор Нить Только для чтения Возвращает ссылку на идентификатор (клиента), прикрепленную к политике. PostClientFlow
ограничение скорости. policy_name .класс.разрешенный.количество Длинный Только для чтения Возвращает разрешенное количество квот, определенное в классе PostClientFlow
ограничение скорости. policy_name .класс.использован.количество Длинный Только для чтения Возвращает использованную квоту внутри класса PostClientFlow
ограничение скорости. policy_name .класс.доступный.количество Длинный Только для чтения Возвращает доступное количество квот в классе PostClientFlow
ограничение скорости. policy_name .класс.превысить.количество Длинный Только для чтения Возвращает количество запросов, превышающих лимит в классе в текущем интервале квоты. PostClientFlow
ограничение скорости. policy_name .класс.всего.превышения.количество Длинный Только для чтения Возвращает общее количество запросов, превышающих лимит в классе по всем интервалам квот, поэтому оно представляет собой сумму class.exceed.count для всех интервалов квот. PostClientFlow
ограничение скорости. policy_name .не удалось Булевое значение Только для чтения

Указывает, была ли выполнена политика неверно (истина или ложь).

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 в запросе, отправленном из клиентского приложения.

Например, «имя=тест&тип=первый&группа=А».

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

Запрос типа 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

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

  • Запрос: 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 ссылается на конечную точку прокси-сервера API для выполнения.

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

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

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

router

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

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

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

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

Запрос прокси

servicecallout

Описывает TargetEndpoint для политики ServiceCallout .

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

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

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

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

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

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

URI TargetEndpoint для политики ServiceCallout . URI — это URL-адрес TargetEndpoint без указания протокола и домена.

Запрос прокси

system

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

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

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

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

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

Имя модуля, на котором работает прокси.

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

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

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

Время чтения этой переменной. Например, «Ср, 21 авг. 2013 г., 19:16:47 UTC».

Это значение является строковым представлением соответствующего значения system.timestamp . Например, «Ср, 21 авг. 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 Булевое значение Чтение/запись

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

Цель, к которой сообщение достигает targetendpoint.

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

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

Целевой ответ
target.organization.unit Нить Только для чтения

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

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

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

Целевой ответ
target.received.end.time Нить Только для чтения

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.received.end.
timestamp
Длинный Только для чтения

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.received.start.time Нить Только для чтения

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.received.start.
timestamp
Длинный Только для чтения

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.scheme Нить Только для чтения

Scope begins : Target response
Тип : Строка
Permission : Read/Write

Returns http or https depending on the request message.

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

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.sent.end.timestamp Длинный Только для чтения

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.sent.start.time Нить Только для чтения

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.sent.start.timestamp Длинный Только для чтения

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.ssl.enabled Булевое значение Только для чтения

Whether TargetEndpoint is running on TLS/SSL.

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

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

Целевой ответ
target.url Нить Чтение/запись

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.

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

variable

A container for the variable.expectedcn property.

The following table describes the properties of the variable variable:

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

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:

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

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

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

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

Proxy request
virtualhost.ssl.enabled Булевое значение Только для чтения

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 .