Полный рефакторинг (не переписывание с нуля) бэкэнда проекта с хакатона РГСУ
- Использована нормальная архитектура с теперь уже значительно более глубоким знанием Spring
- Активное использование Spring Data JPA и Derived Queries вместе с JPQL вместо JdbcTemplate
- Валидация всего и вся ещё на этапе запроса с помощью кастомных валидаторов, в т.ч. с использованием SpEL
- Возможность развертывать проект через Docker вместе с PostgresQL через docker-compose, в котором используется билд контейнера через native-image
- Полностью переделана схема API, хотя смысловая нагрузка у эндпоинтов та же самая (новый формат + версионирование: /api/v2/...)
- Схема ответов (
{"ok": true, "games": [...]}
), код ответов (responses) практически не изменился - Схема БД, однако были сняты некоторые
NOT NULL
constraint'ы и значения по-умолчанию в пользуNULL
и добавлены указания на то что некоторые поля являются fk (references(...)
) - Сборка всё так же через Maven
- Юнит тестов
- Документации API
$ ./build-docker-image.sh
$ docker-compose up
- Подготовить БД согласно настройкам в docker-compose.yml
- Разметить её согласно схеме setup_db.sql
$ ./mvn spring-boot:run -Dspring-boot.run.arguments="--spring.datasource.url=jdbc:postgresql://postgres:5432/rssu-hackathon --spring.datasource.username=hackathon --spring.datasource.password=SuperSecretPassword --spring.server.port=8081"