Паттерн Middleware¶
Многие современные фреймворки используют подход, который называется middleware (промежуточное ПО). Он позволяет разделить обработку запроса на несколько этапов, каждый из которых выполняет свою задачу. Это делает код более организованным и удобным для поддержки.
Один из самых популярных примеров использования middleware — авторизация пользователей.
Как это работает:
-
Проверка доступа
Сначала middleware проверяет, может ли пользователь получить доступ к приложению. Например, он анализирует токен или другие данные для входа. Этот код не знает, что именно делает приложение — его задача только проверить, что пользователь имеет право на доступ. -
Основная логика приложения
После проверки доступа выполняется основной код приложения. Он уже не заботится о том, как пользователь авторизовался, а просто делает свою работу — например, обрабатывает запросы или взаимодействует с базой данных.
Правило предназначено для автоматической модификации других правил, цель – собрать разные части запроса с помощью различного кода. Может быть полезно для настройки фильтрации данных с определенным значением в одном месте, если значение обрабатывается идентично в разных частях приложения.
Создание и применение правила¶
Создать и применить правило можно как в разделе События, так и в разделе Правила.
В разделе События правила создаются с предзаполненным описанием приложения или части приложения, к которой они применяются. Описание соответствует запросу, рядом с которым вы нажали кнопку Правило при анализе запроса:
- Выберите событие, для которого необходимо определить правило.
- В строке запроса нажмите Правило.
Чтобы завершить создание правила, достаточно настроить тип действия правила и убедиться, что все части правила описаны корректно: - Разверните список Структура приложения и выберите Отметить как middleware.
- Заполните необходимые поля.
- Нажмите Создать.
В разделе Правила все части правила необходимо заполнить вручную:
-
Выберите ветку и нажмите Добавить правило.
Вы также можете ввести URI вручную, без выбора ветки, нажав Добавить правило в верхней части окна. -
Разверните список Структура приложения и выберите Отметить как middleware.
-
Заполните необходимые поля.
-
Нажмите Создать.
Все правила с таким же параметром как и у middleware будут автоматически перенесены в события к этому middleware (как текущие, так и созданные в будущем).
Пример применения middleware для автоматизации переноса данных¶
С помощью правила можно автоматизировать задачу переноса всех полей заголовков, которые связаны с параметром запроса HEADER_*
, на значение default
: то есть, правило автоматически переместит все заголовки в место по умолчанию.