Полнофункциональный REST API сервис для управления банковскими картами, денежными переводами и процессами блокировки. Построен на актуальном стеке Spring Boot 4.0.2 и Java 21.
- Java: 25 (LTS) — использование Virtual Threads и современных фич языка.
- Framework: Spring Boot 4.0.2 (Jakarta EE 11).
- Security: Spring Security + JWT (jjwt 0.12.6) + шифрование BCrypt.
- Database: PostgreSQL + Liquibase (миграции) + Spring Data JPA (Hibernate 7).
- API Doc: SpringDoc OpenAPI 3 (Swagger UI) с поддержкой JWT Authorize.
- DevOps: Docker, Docker Compose (автоматический запуск БД).
- Testing: JUnit 5, Mockito, AssertJ, MockMvc (использование
@MockitoBean).
Используется для локального запуска и отладки кода. База данных поднимается в Docker:
docker compose up -d postgres
./mvnw spring-boot:runЕсли нужно запустить скомпилированный проект без Maven:
/mvnw clean package -DskipTests
java -jar target/bankcards-0.0.1-SNAPSHOT.jarЗапускается через docker compose up --build -d
Проект покрыт Unit-тестами и WebMvc-тестами. Запуск всех тестов: ./mvnw clean test
Интерфейс: http://localhost:8080/swagger-ui/index.html
Спецификация (YAML): http://localhost:8080/v3/api-docs.yaml
При запущенном приложении выполните в другом терминале: ./mvnw springdoc-openapi:generate
Файл сохранится в папку: docs/openapi.yaml
- Выполнить POST-запрос/auth/login с валидными данными (bcadmin:password или bcuser:password).
- Скопировать token из JSON-ответа.
- Нажать кнопку Authorize (с иконкой замка) вверху страницы Swagger.
- Вставить токен и нажать Authorize. Теперь все защищенные методы доступны.