Widowan / rssu-hackathon-backend

Рефакторинг бэкэнда с хакатона РГСУ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Полный рефакторинг (не переписывание с нуля) бэкэнда проекта с хакатона РГСУ

Что изменилось?

  • Использована нормальная архитектура с теперь уже значительно более глубоким знанием 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

Как собрать/запустить?

С Docker:

$ ./build-docker-image.sh
$ docker-compose up

Без Docker:

  • Подготовить БД согласно настройкам в 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"

About

Рефакторинг бэкэнда с хакатона РГСУ


Languages

Language:Java 96.4%Language:PLpgSQL 3.4%Language:Shell 0.3%