Фаза Match
Область действия фазы
Фаза используется в модифицирующем расширении и является необязательной для его работы (соответствующая секция match
в YAML-файле может как присутствовать, так и отсутствовать).
Фаза должна отсутствовать в YAML-файле расширения, если создается немодифицирующее расширение.
Подробную информацию о типах расширений FAST вы можете получить здесь.
Синтаксис описания элементов запроса
При создании расширения FAST вам необходимо понимать структуру запроса к приложению и ответа от приложения, чтобы корректно описывать элементы запроса, с которыми необходимо работать, с помощью point’ов.
Более подробная информация о синтаксисе описания элементов запроса доступна здесь.
Эта фаза позволяет проверять поступающие базовые запросы на соответствие заданным критериям.
Секция match
в YAML-файле расширения состоит из массива пар <ключ: значение>
.
Каждая пара описывает некоторый элемент запроса (ключ) и данные в этом элементе (значение). Ключ и значение могут содержать регулярные выражения в формате регулярных выражений Ruby.
В фазе Match происходит поиск соответствий между заданными парами <ключ: значение>
и базовым запросом:
Проверяется наличие в запросе необходимых элементов (например, значение пути в URL, GET-параметра или HTTP-заголовка) с необходимыми данными.
Пример 1.
'GET_a_value': '^\d+$'
— в запросе должен присутствовать GET-параметрa
, значением которого являются цифры.Пример 2.
'GET_b*_value': '.*'
— в запросе должен присутствовать GET-параметр, начинающийся сb
, с любым значением (в том числе пустым).В случае, если значение данных
null
, проверяется, что соответствующий элемент отсутствует в запросе.Пример.
'GET_a': null
— в запросе должен отсутствовать GET-параметрa
.
Чтобы базовый запрос прошел через фазу Match, необходимо, чтобы он целиком соответствовал всем парам <ключ: значение>
в секции match
. Если для какой-либо пары <ключ: значение>
, описанной в секции match
, не будет найдено соответствия в базовом запросе, то такой запрос будет отброшен.
Представленная ниже секция Пример.
match
содержит в себе список из нескольких пар <ключ: значение>
. Для того, чтобы базовый запрос прошел через фазу Match, необходимо, чтобы он соответствовал всем этим парам:match:
- 'HEADER_HOST_value': 'example.com'
- 'GET_password_value': '^\d+$'
- 'HEADER_CONTENT-TYPE_value': null
Header
, значение которого включает в себя строку example.com
;password
должны быть только цифры;Content-Type
должен отсутствовать.
results matching ""
No results matching ""
results matching ""
No results matching ""