Обработка HTTP-запросов

Обработка параметров HTTP-запроса #

В рамках данного раздела ученики должны научиться корректно обрабатывать данные, которые приходят от пользователя:

  • По возможности использовать аргументы по умолчанию, если применимо.
  • Переход на страницу отсутствия данных, если переданные параметры не могут быть обработаны.
  • Корректная работа с формами.
  • Работа с хранилищем данных.

Дополнительные знания, вне курса:

  • Статический анализ с помощью ktlint / detekt

Необходимые знания:

  • Детали работы с параметрами запроса в http4k.
  • Детали настройки навигации в http4k, получение данных в URL-запросе.
  • Типичные сценарии взаимодействия пользователя с веб-приложением.
  • Коды HTTP-запросов.

Лекция № 4: Запросы на изменение данных #

  • Отличие обработки GET-данных от запросов на изменение
  • Различие POST, PUT и DELETE-запросов
  • Сценарии по выполнению типичных операций: добавление, удаление и редактирование
  • HTML-формы на клиенте
  • HTML-формы на сервере
  • Lens и контракты
  • Архитектурное разделение приложения на части

Практика № 9: Статический анализ исходного кода приложения #

  • Добавление detekt и ktlint в зависимости приложения
  • Конфигурация средств проверки для курса
  • Улучшение кода с последней лабораторной или последних практик

Практика № 10: Работа с хранилищем данных #

  • Инициализация
  • Неизменяемость элементов
  • Добавление элементов, извлечение элементов

Практика № 11: Добавление новых элементов #

  • Описание HTML-форм
  • Низкоуровневая обработка HTML-форм на сервере
  • Реализация базового цикла: показ формы, возврат формы с заполненными полями при ошибке

В рамках практики необходимо реализовать добавление новых элементов в список

Лекция № 5: Расширенные варианты передачи запросов в приложение #

  • Параметры в запросе
  • Параметры в пути к странице с данными
  • Редактирование через GET-запросы
  • Отображение через POST-запросы
  • Передача данных внутри документа?

Практика № 12: Реализация валидации форм и редактирование элементов #

  • Валидация с помощью механизма lens
  • Изначальное заполнение формы данными
  • Уменьшение дублирования при выполнении данной операции

Практика № 13: Постраничный вывод списка #

  • Организация подсчёта страниц
  • Организация передачи информации о нужной страницы через параметр
  • Передача информации о странице внутри URL

Защита лабораторной работы № 2 #

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

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