shrek-realm-expander

0

Описание

Spring Boot приложение на Java Modules с модульной структурой, демонстрирующее разделение компонентов по слоям (controller/service/repository) и организацию пакетов/классов.

Языки

  • Java100%
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
год назад
readme.md

Shrek Realm Expander

Приложение демонстрирует современный подход к организации многомодульного проекта с использованием Java Platform Module System (JPMS).

Логика приложения - управление персонажами вселенной Шрека с проверкой на "сказочность"

Технологии

Java 17 Java Platform Module System (JPMS) Spring Boot 3.x Lombok MapStruct (для маппинга DTO) JUnit 5 + Mockito (тесты)

Модули

МодульНазначение
apiЗапуск приложения + REST контроллеры
serviceБизнес-логика (регистрация, фильтрация персонажей)
providerДанные о сказочных персонажах (из внешних источников)
coreХранилище персонажей Шрека
entitiesОбщие DTO (
CommonEnchantedCharacter
)

API Endpoints

Регистрирует нового персонажа (только если он сказочный)

Возвращает всех персонажей вселенной Шрека

Возвращает всех сказочных персонажей

Архитектура

Структура пакетов

Каждый модуль имеет следующую структуру пакетов (на примере core):

Взаимодействие модулей

img.png

Типовой flow (пример)

Запрос: POST /register?name=Mulan ↓ provider проверяет, что Mulan - сказочный персонаж ↓ service генерирует магический ID (ope-1014nse-917sa-216me) ↓ service назначает роль во вселенной Шрека ("Scenery") ↓ core сохраняет обогащенные данные ↓ в ответе возращаются полные данные нового персонажа Шрека

Примеры данных

До обработки (из provider):

После обработки (в core):

Запуск

Запуск приложения

Примеры запросов

Запрос на создание получение всех возможных для добавления волшебных персонажей:

Ответ:

Запрос на создание получение всех персонажей Шрека:

Ответ:

Запрос на создание нового персонажа:

Ответ: