Java: Веб-технологии
Теория: Создание CRUD на Javalin
Несмотря на огромное число разнообразных сайтов, практически всю веб-разработку можно свести к CRUD-операциям. В этом уроке мы познакомимся с ними подробнее.
Что такое CRUD
CRUD — это широко распространенный термин, означающий четыре стандартные операции над любой сущностью. Рассмотрим такой пример:
- Создание (Create) — регистрация пользователя
- Чтение (Read) — просмотр профиля пользователями сайта или в административном интерфейсе
- Обновление (Update) — Обновление личных данных, смена электронной почты или пароля
- Удаление (Delete) — удаление данных
Точно так же можно расписать действия над любыми другими ресурсами: фотографиями пользователя, его друзьями, сообщениями и так далее. Чтобы создать полный CRUD, нужно выполнить следующие действия:
- Создать сущность в коде (как правило, это класс)
- Добавить таблицу в базу
- Написать тесты для проверки обработчиков
- Добавить обработчики
- Добавить шаблоны
Ниже мы пройдемся по всему процессу создания CRUD пользователя за исключением работы с базой данных и тестов.
Начнем с роутинга. Полный CRUD пользователя включает минимум семь маршрутов. Их может быть больше, потому что любое действие может повторяться более одного раза:
Такое соглашение об именовании маршрутов изначально появилось во фреймворке Ruby On Rails, а затем его адаптировали во многих других. Здесь мы его используем из-за его универсальности и понятности.
Как работают контроллеры
CRUD-операции объединяют маршруты и их обработчики в логические блоки вокруг каких-то сущностей — например, CRUD курсов, упражнений, уроков, статей в блоге и так далее. Такая структура позволяет разбить приложение на файлы так, чтобы его было удобно поддерживать. В веб-разработке принято объединять обработчики в контроллеры – классы, которые содержат в себе обработчики сущностей.
Работая с Javalin, мы можем добавлять контроллеры как классы, потому что фреймворк по умолчанию умеет работать с ними. Чтобы лучше понять тему, разберем упрощенный пример такого класса управления пользователями:
Этот контроллер не учитывает валидацию, пагинацию и множество других деталей, которыми всегда обрастает реальное приложение. Сейчас нам важнее сфокусироваться на самой концепции.
Как мы выяснили выше, контроллер — это класс, в котором каждый обработчик описан статическим методом, принимающим на вход контекст. Полный CRUD включает в себя реализацию семи методов, но все зависит от задачи — иногда могут понадобиться не все методы, иногда приходится добавлять какие-то более специфические обработчики.
Теперь нужно поправить роутинг. Описание роутинга с добавлением контроллеров становится проще для восприятия:
Когда стоит переходить на использование контроллеров? Практически в любой ситуации контроллеры не вносят сложности, но значительно помогают при расширении кода. Они улучшают навигацию по проекту и делают роутинг гораздо более понятным.
Рекомендуемые программы
Завершено
0 / 23



