Фаза Modify

Область действия фазы

Фаза используется в модифицирующем расширении и является необязательной для его работы (соответствующая секция modify в YAML-файле может как присутствовать, так и отсутствовать).

Фаза должна отсутствовать в YAML-файле расширения, если создается немодифицирующее расширение.

Подробную информацию о типах расширений FAST вы можете получить здесь.

Синтаксис описания элементов запроса

При создании расширения FAST вам необходимо понимать структуру запроса к приложению и ответа от приложения, чтобы корректно описывать элементы запроса, с которыми необходимо работать, с помощью point'ов.

Более подробная информация о синтаксисе описания элементов запроса доступна здесь.

Эта фаза позволяет модифицировать значения полей и параметров базового запроса, если это необходимо. Обратите внимание, что с помощью фазы Modify невозможно добавить элемент, который отсутствует в исходном запросе. Например, вы не сможете добавить HTTP-заголовок Cookie, если он отсутствует в исходном запросе.

Секция modify в YAML-файле расширения состоит из массива пар <ключ: значение>. Каждая пара описывает некоторый элемент запроса (ключ) и данные, которые необходимо вставить в этот элемент (значение). Ключ может содержать регулярные выражения в формате регулярных выражений Ruby. Применение регулярных выражений к значению ключа не поддерживается.

В фазе Modify можно задать новые данные для значения элемента или удалить данные для значения элемента:

  • Если для ключа задано значение, то для соответствующего ключу элемента в базовом запросе будут заданы новые данные, взятые из значения. Если такого элемента в базовом запросе нет, вставки нового элемента не произойдёт.

    Пример.

    'HEADER_COOKIE_value': 'C=qwerty123'

    Фаза Modify

  • Если для ключа не задано значение, то данные соответствующего ключу элемента в базовом запросе очищаются.

    Пример.

    'HEADER_COOKIE_value': ""

Пример.

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

  1. Значение заголовка Content-Type будет заменено на application/xml;
  2. Будут удалены данные GET-параметра uid (сам параметр удален не будет).
modify:
  - "HEADER_CONTENT-TYPE_value": "application/xml"
  - "GET_uid_value": ""

results matching ""

    No results matching ""