Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Разработка веб-приложений с Quarkus и React

Покупка
Новинка
Артикул: 855985.01.99
Доступ онлайн
1 399 ₽
В корзину
В этой книге описывается создание и развертывание комплексного веб-приложения с использованием фреймворка Quarkus и популярной библиотеки React. Вы узнаете, как запустить проект Quarkus и как создать надежный HTTP-сервер для вашего приложения, как разработать пользовательский интерфейс с поддержкой React и интегрировать его с серверной частью Quarkus. Также вы научитесь создавать манифесты конфигурации кластера и развертывать их в Kubernetes и его альтернативах, например Fly.io. Издание предназначено для разработчиков серверных веб-приложений и веб-интерфейсов, имеющих базовые знания и опыт работы с Java или JavaScript и желающих освоить Quarkus и React.
Марк Нури Сан Феликс, Сан Феликс, М. Н. Разработка веб-приложений с Quarkus и React : практическое руководство / пер. с англ. А. Н. Киселева. – Москва : ДМК Пресс, 2023. - 296 с. – ISBN 978-5-93700-207-5. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2204237 (дата обращения: 03.04.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Марк Нури Сан Феликс
Разработка веб-приложений  
с 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


Похожие

Доступ онлайн
1 399 ₽
В корзину