Skip to content

kloun/bankapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏦 Bank Cards API Service

Полнофункциональный 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).

🚀 Инструкция по запуску

1. Режим разработки (Maven Wrapper)

Используется для локального запуска и отладки кода. База данных поднимается в Docker:

docker compose up -d postgres
./mvnw spring-boot:run

Запуск собранного приложения (JAR)

Если нужно запустить скомпилированный проект без Maven:

   /mvnw clean package -DskipTests
  java -jar target/bankcards-0.0.1-SNAPSHOT.jar

2. Полный запуск в Docker (Full Stack)

Запускается через docker compose up --build -d

🧪 Тестирование

Проект покрыт Unit-тестами и WebMvc-тестами. Запуск всех тестов: ./mvnw clean test

📖 API Документация (Swagger)

Интерфейс: http://localhost:8080/swagger-ui/index.html

Спецификация (YAML): http://localhost:8080/v3/api-docs.yaml

Генерация статической спецификации:

При запущенном приложении выполните в другом терминале: ./mvnw springdoc-openapi:generate

Файл сохранится в папку: docs/openapi.yaml

Как авторизоваться в Swagger:

  1. Выполнить POST-запрос/auth/login с валидными данными (bcadmin:password или bcuser:password).
  2. Скопировать token из JSON-ответа.
  3. Нажать кнопку Authorize (с иконкой замка) вверху страницы Swagger.
  4. Вставить токен и нажать Authorize. Теперь все защищенные методы доступны.

About

Rest API For bankcards and P2P transfers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors