shrek-realm-expander
Описание
Spring Boot приложение на Java Modules с модульной структурой, демонстрирующее разделение компонентов по слоям (controller/service/repository) и организацию пакетов/классов.
Языки
- Java100%
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 () |
API Endpoints
Регистрирует нового персонажа (только если он сказочный)
Возвращает всех персонажей вселенной Шрека
Возвращает всех сказочных персонажей
Архитектура
Структура пакетов
Каждый модуль имеет следующую структуру пакетов (на примере core):
Взаимодействие модулей

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