Применение линз для проверки данных от пользователя #
Фильтры в http4k #
Презентацию по теме можно посмотреть по ссылке.
Видео-запись: Rutube
Извлечение сложных данных #
Презентацию по теме можно посмотреть по ссылке.
Видео-запись: Rutube
Задание № 1. Реализация общего фильтра для ошибок #
Добавьте в приложение HTTP-фильтр, в задачу которого входит:
- Перехват ошибки LensFailure.
- В случае возникновения ошибки необходимо вернуть ответ с кодом 400 и JSON-документом, содержащим описание ошибки.
Данный фильтр должен быть применён ко всему приложению.
Уберите лишние проверки на выброс исключений в HTTP-обработчиках.
Задание № 2. Сложные линзы для постраничного вывода #
Реализуйте сложную линзу, которая будет извлекать параметры page
и
records-per-page
из параметров запроса. Положительным результатом работы
сложной линзы должны быть объектов класса
data class PaginationParameters(val page: Int, val recordsPerPage: Int)
Данный объект должен создаваться, если параметры page
и records-per-page
,
соответствуют техническому заданию. В случае несоответствия должно
генерироваться исключение LensFailure, сообщающее о проблеме в соответствующем
поле.
Примените данную линзу во всех HTTP-обработчиках, которые показывают списки данных пользователям.