Применение линз для проверки данных от пользователя

Применение линз для проверки данных от пользователя #

Фильтры в 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-обработчиках, которые показывают списки данных пользователям.

© A. M. Васильев, 2024, CC BY-SA 4.0, andrey@crafted.su