Разработка веб-приложений с Quarkus и React
Покупка
Новинка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Марк Нури Сан Феликс
Перевод:
Киселев Артём Николаевич
Год издания: 2023
Кол-во страниц: 296
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-93700-207-5
Артикул: 855985.01.99
В этой книге описывается создание и развертывание комплексного веб-приложения с использованием фреймворка Quarkus и популярной библиотеки React. Вы узнаете, как запустить проект Quarkus и как создать надежный HTTP-сервер для вашего приложения, как разработать пользовательский интерфейс с поддержкой React и интегрировать его с серверной частью Quarkus. Также вы научитесь создавать манифесты конфигурации кластера и развертывать их в Kubernetes и его альтернативах, например Fly.io.
Издание предназначено для разработчиков серверных веб-приложений и веб-интерфейсов, имеющих базовые знания и опыт работы с Java или JavaScript и желающих освоить Quarkus и React.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Марк Нури Сан Феликс Разработка веб-приложений с Quarkus и React
Marc Nuri San Felix Full Stack Quarkus and React Hands-on full stack web development with Java, React, and Kubernetes BIRMINGHAM—MUMBAI
Марк Нури Сан Феликс Разработка веб-приложений с Quarkus и React Разработка веб-приложений с использованием Java, React и Kubermetes Москва, 2023
УДК 004.04 ББК 32.372 С18 Марк Нури Сан Феликс С18 Разработка веб-приложений с Quarkus и React / пер. с англ. А. Н. Киселева. – М.: ДМК Пресс, 2023. – 294 с.: ил. ISBN 978-5-93700-207-5 В этой книге описывается создание и развертывание комплексного вебприложения с использованием фреймворка Quarkus и популярной библиотеки React. Вы узнаете, как запустить проект Quarkus и как создать надежный HTTPсервер для вашего приложения, как разработать пользовательский интерфейс с поддержкой React и интегрировать его с серверной частью Quarkus. Также вы научитесь создавать манифесты конфигурации кластера и развертывать их в Kubernetes и его альтернативах, например Fly.io. Издание предназначено для разработчиков серверных веб-приложений и вебинтерфейсов, имеющих базовые знания и опыт работы с Java или JavaScript и желающих освоить Quarkus и React. УДК 004.04 ББК 32.372 Copyright ©Packt Publishing 2022. First published in the English language under the title Full Stack Quarkus and React – (9781800562738). Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-80056-273-8 (англ.) © 2022 Packt Publishing ISBN 978-5-93700-207-5 (рус.) © Перевод, оформление, издание, ДМК Пресс, 2023
Юлии за ее безоговорочную поддержку в этом путешествии. Айтане и Алексу, в надежде, что однажды эта книга пробудит в вас интерес к информатике и вычислительной технике. – Марк Нури Сан Феликс
Содержание От издательства.....................................................................................................13 Предисловие...........................................................................................................14 Об авторе..................................................................................................................15 О рецензентах........................................................................................................16 Вступление...............................................................................................................17 Часть I. СОЗДАНИЕ СЕРВЕРНОЙ ЧАСТИ С ПОМОЩЬЮ QUARKUS..............................................................................20 Глава 1. Создание проекта...............................................................................21 Технические требования............................................................................................21 Что такое Quarkus?......................................................................................................22 Настройка рабочего окружения в IntelliJ IDEA.......................................................23 Создание приложения Quarkus.................................................................................23 Структура проекта и зависимости...........................................................................25 Maven Wrapper.........................................................................................................26 Проект Maven (pom.xml)........................................................................................27 Координаты Maven (GAV)..................................................................................27 Свойства Maven...................................................................................................27 Управление зависимостями.............................................................................28 Зависимости........................................................................................................28 Плагины...............................................................................................................30 Профили...............................................................................................................30 Исходные файлы.....................................................................................................30 Свойства приложения........................................................................................31 Статические ресурсы.........................................................................................31 Java-код................................................................................................................32 Файлы Docker......................................................................................................32 Режим разработки..................................................................................................33 Отладка в режиме разработки..........................................................................34
Содержание 7 Непрерывное тестирование..................................................................................36 Упаковка приложения............................................................................................37 Итоги.............................................................................................................................38 Вопросы........................................................................................................................39 Глава 2. Добавление поддержки хранилищ...........................................40 Технические требования............................................................................................40 Сохранение данных в Quarkus..................................................................................41 Добавление зависимостей в проект....................................................................41 Hibernate Reactive Panache................................................................................41 Реактивный клиент PostgreSQL........................................................................42 Elytron Security Common....................................................................................42 Настройка Quarkus..................................................................................................43 Реализация модели данных диспетчера задач.......................................................44 Удаление начальных примеров классов и файлов............................................45 Создание сущностей диспетчера задач...............................................................45 Хранилища и сущности Panache......................................................................45 User.......................................................................................................................46 Project...................................................................................................................50 Task.......................................................................................................................52 Таблицы базы данных, полученные из сущностей ORM..................................53 Загрузка начальных данных приложения..........................................................54 Quarkus Dev Services...................................................................................................55 Итоги.............................................................................................................................56 Вопросы........................................................................................................................56 Глава 3. Создание HTTP API............................................................................57 Технические требования............................................................................................57 Создание конечных точек HTTP REST в Quarkus...................................................58 Добавление дополнительных зависимостей в проект......................................58 Блокирующая синхронная конечная точка........................................................59 Неблокирующая асинхронная конечная точка..................................................60 Реализация бизнес-логики диспетчера задач........................................................61 UserService................................................................................................................61 ProjectService...........................................................................................................66 TaskService...............................................................................................................69 Доступ к диспетчеру задач из внешнего интерфейса...........................................71 UserResource.............................................................................................................72 Десериализация поля password в сущности User...........................................75 ProjectResource........................................................................................................76 TaskResource............................................................................................................77 Обработка исключений в службах............................................................................79 Итоги.............................................................................................................................82 Вопросы........................................................................................................................82
8 Содержание Глава 4. Защита приложения..........................................................................83 Технические требования............................................................................................83 Использование JWT в Quarkus..................................................................................84 Добавление необходимых зависимостей...........................................................84 SmallRye JWT.......................................................................................................85 Сборка SmallRye JWT..........................................................................................85 Реализация безопасности HTTP API в диспетчере задач.....................................86 Генерирование файлов ключей............................................................................86 Настройка приложения..........................................................................................88 Реализация службы аутентификации и интерфейса входа в систему...........89 AuthService...........................................................................................................89 AuthResource.......................................................................................................91 Получение авторизованного пользователя........................................................93 Разрешение изменения пароля............................................................................94 Защита ресурсов HTTP...........................................................................................96 Итоги.............................................................................................................................97 Вопросы........................................................................................................................98 Глава 5. Тестирование серверной части....................................................99 Технические требования............................................................................................99 Тестирование в Quarkus...........................................................................................100 Добавление недостающей тестовой зависимости в проект...........................100 Тестирование безопасности JWT...................................................................101 Тестирование диспетчера задач.............................................................................101 Настройка приложения........................................................................................102 Тестирование аутентификации..........................................................................102 Тестирование операций, связанных с пользователями.................................106 Тестирование конечной точки списка пользователей...............................107 Тестирование функции создания пользователя..........................................107 Тестирование функции изменения информации о пользователе...........109 Тестирование функции удаления пользователя..........................................111 Тестирование функции смены пароля..........................................................111 Тестирование функций, связанных с проектом...............................................112 Тестирование функции удаления проекта...................................................113 Тестирование функций, связанных с задачами...............................................113 Тестирование функции установки признака завершения задачи............114 Итоги...........................................................................................................................115 Вопросы......................................................................................................................115 Глава 6. Создание двоичного образа.......................................................116 Технические требования..........................................................................................117 Создание двоичного выполняемого файла в Quarkus.........................................117 Настройка GraalVM...............................................................................................118 Создание двоичного образа диспетчера задач....................................................120 Включение дополнительных ресурсов приложения.......................................120
Содержание 9 Создание двоичного образа................................................................................121 Запуск двоичного образа.....................................................................................121 Создание двоичного образа в контейнере Docker...........................................123 Итоги...........................................................................................................................125 Вопросы......................................................................................................................125 Часть II. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА С ПОМОЩЬЮ REACT..................................................126 Глава 7. Создание проекта React.................................................................127 Технические требования..........................................................................................127 Что такое React?.........................................................................................................128 Создание проекта React...........................................................................................128 Структура каталогов.............................................................................................131 Добавление маршрутизации...............................................................................133 Добавление библиотеки компонентов React Material UI................................133 Добавление библиотеки управления состоянием...........................................134 Создание общего макета..........................................................................................135 Создание компонента TopBar.............................................................................135 Создание компонента MainDrawer....................................................................137 Управление состоянием макета.........................................................................141 Создание компонента Layout..............................................................................142 Отображение фиктивной страницы......................................................................143 Настройка глобального хранилища...................................................................144 Переопределение темы MUI................................................................................145 Настройка маршрутизатора приложения.........................................................146 Собираем все вместе............................................................................................147 Итоги...........................................................................................................................149 Вопросы......................................................................................................................149 Глава 8. Создание страницы входа...........................................................150 Технические требования..........................................................................................150 Настройка процесса аутентификации...................................................................151 Настройка поддержки режима разработки React в Quarkus..........................151 Настройка окружения React................................................................................152 Управление сеансом пользовательского интерфейса.....................................153 Создание страницы входа........................................................................................157 Добавление защищенной страницы управления пользователями...................161 Определение сегмента для службы управления пользователями с по-мощью функции createApi...........................................................................161 Создание страницы пользователей...................................................................163 Добавление ссылки на страницу Users в MainDrawer......................................165 Запуск приложения...................................................................................................166 Итоги...........................................................................................................................168 Вопросы......................................................................................................................169
10 Содержание Глава 9. Создание основного приложения............................................170 Технические требования..........................................................................................170 Добавление функций выхода и смены пароля.....................................................171 Реализация диалога смены пароля....................................................................171 Добавление значка пользователя на верхнюю панель...................................175 Добавление функций CRUD.....................................................................................179 Добавление функций управления проектами.................................................179 Определение сегмента для службы управления проектами.....................179 Создание компонентов для работы с проектами........................................181 Добавление функций управления задачами....................................................183 Определение сегмента для службы управления задачами........................183 Реализация диалога редактирования задачи..............................................184 Реализация страницы со списком задач.......................................................189 Добавление страницы со списком задач в маршрутизатор приложения.......................................................................................................191 Доработка макета приложения..........................................................................192 Удаление ненужных файлов и запуск приложения.............................................194 Итоги...........................................................................................................................195 Вопросы......................................................................................................................196 Глава 10. Тестирование пользовательского интерфейса...............197 Технические требования..........................................................................................197 Обзор средств тестирования интерфейсных приложений.................................198 Добавление необходимых зависимостей.........................................................199 Тестирование компонентов React..........................................................................200 Запуск тестов в IntelliJ..........................................................................................203 Тестирование маршрутизатора..............................................................................203 Вспомогательные утилиты для тестирования.................................................204 Тестирование маршрутов и системы навигации в приложении...................204 Тестирование переадресации для пользователей, вышедших из системы.........................................................................................................206 Тестирование переадресации авторизованных пользователей...............206 Тестирование возможностей приложения............................................................208 Тестирование функций, связанных с авторизацией.......................................208 Тестирование функций управления задачами................................................211 Запуск тестов из командной строки......................................................................213 Итоги...........................................................................................................................215 Вопросы......................................................................................................................215 Глава 11. Интеграция с Quarkus..................................................................216 Технические требования..........................................................................................216 Сравнение распространения приложения в виде монолита и микросервисов.......................................................................................................217 Преимущества микросервисной архитектуры.................................................217