REST API на Spring Boot с Amplicode: DTO, MapStruct, Sqids и тесты

18 подписчиков

12+
12+

4 часа назад

ПожаловатьсяНарушение авторских прав

18 подписчиков

12+
12+

4 часа назад

ПожаловатьсяНарушение авторских прав
12+
12+

4 часа назад

REST API на Spring Boot с Amplicode в IntelliJ IDEA: DTO вместо entity, мапперы MapStruct, фильтрация, скрытые ID через Sqids и интеграционные тесты. Фрагмент трансляции Amplicode от команды Haulmont (3 сентября 2024): Илья Кучмин и Георгий Власов вместе с Рустамом Курамшиным дорабатывают API приложения Spring PetClinic. Сначала чиним эндпоинт, который отдаёт entity с лишними данными, потом пишем новый API для интеграции: с фильтрацией, закодированными идентификаторами вместо числовых и тестами на MockMvc. По ходу спорим о подходах: MapStruct или ModelMapper, WebFlux или корутины Kotlin, Page или Slice. Что разберём: - DTO на Java Record и маппер MapStruct прямо из контроллера, без смены контекста - методы репозитория с фильтрацией (startsWith, contains, ignoreCase), JPA Specification и Querydsl - @ControllerAdvice, PATCH через JsonNode и OpenAPI-спецификацию из кода - @ConfigurationProperties и Sqids: почему не отдавать наружу числовые ID - интеграционный тест на MockMvc, пагинацию через Slice и генерацию CRUD-контроллера Таймкоды: 0:00 Анонс трансляции Amplicode 1:00 Рустам Курамшин в гостях и задача 1:37 Эндпоинт отдаёт entity с лишними данными 2:33 DTO вместо entity 3:09 MapStruct или ModelMapper 5:52 WebFlux, корутины и поддержка в Amplicode 7:52 DTO и маппер прямо из контроллера 8:59 Фильтрация через методы репозитория 9:56 Сервисный слой, JPA Specification и Querydsl 12:00 @ControllerAdvice для ошибок 12:47 PATCH-эндпоинт через JsonNode 13:07 OpenAPI-спецификация из кода 16:50 Методы контроллера в Community Edition 18:46 Новый API для интеграции 20:41 Числовые ID наружу: в чём проблема 22:53 @ConfigurationProperties для кодировщика ID 25:54 Sqids: кодирование идентификаторов 26:51 Мультитенантность и перебор ID 31:22 Интеграционный тест на MockMvc 35:30 Тестовые данные для базы 37:09 Пагинация: Page или Slice 38:15 Синхронизация DTO с entity 40:16 Итоги и генерация CRUD-контроллера 42:07 Не делает ли Amplicode разработчиков хуже Полная запись трансляции: https://youtu.be/7wanDJAcgb4 Ссылки: Amplicode: https://amplicode.ru/ Канал Amplicode: https://www.youtube.com/@amplicode MapStruct: https://mapstruct.org/ Sqids для Java: https://sqids.org/java Spring АйО - сообщество Java-разработчиков на Spring в Telegram: https://t.me/spring_aio Смотрите также на канале: Spring Data REST: CRUD API на Spring Boot без контроллеров: https://youtu.be/ecgOeLYl9cY Jmix для Java-разработчика: как писать меньше кода на Spring Boot: https://youtu.be/g9btfDSL3X4 MapStruct или маппинг руками: как у вас в проекте? Напишите в комментариях. ━━━━━━━━━━━━━━━━━━━━ Telegram-канал Java One Love: https://t.me/java_one_love GitHub: https://github.com/RustamKuramshin Канал о backend-разработке на Java и Kotlin: JVM, Spring Boot, микросервисы, System Design и опыт из реальных проектов. #SpringBoot #Amplicode #RESTAPI

Название:

REST API на Spring Boot с Amplicode: DTO, MapStruct, Sqids и тесты

Категория:

Разное