Это Spring Boot REST API для работы с банковскими картами. Проект собран на Maven и запускается в Docker-контейнерах (приложение + PostgreSQL + pgAdmin).
- Предварительные требования
- Структура проекта
- Генерация OpenAPI спецификации
- Быстрый старт с Docker Compose
- Локальный запуск без Docker (профиль
dev) - Документация API
- Уже созданные пользователи
- Установленный Docker
- Установленный Docker Compose
- (При локальном запуске) Java 17+ и Maven 3.6+
Bank_REST
├── .gitignore
├── Dockerfile
├── docker-compose.yml
├── pom.xml
├── README.md
├── docs/
│ └── openapi.yaml
└── src/
├── main/
│ ├── java/com/example/bankcards/…
│ └── resources/
│ ├── application.yml
│ └── application-dev.yml
└── test/
└── java/…
-
Клонировать репозиторий и перейти в директорию проекта
git clone <URL_репозитория> cd Bank_REST
-
Собрать образы и запустить контейнеры
docker-compose up --build
-
Проверить сервисы
- API:
http://localhost:8060 - pgAdmin:
http://localhost:5433
— логин:[email protected], пароль:admin
- API:
-
Удалить все образы и контейнер
docker-compose down --rmi all -v
| Сервис | Образ | Порт (хост → контейнер) | Описание |
|---|---|---|---|
| postgres | postgres:16 |
5432 → 5432 |
PostgreSQL с БД BankRest |
| pgadmin | dpage/pgadmin4 |
5433 → 80 |
Веб-интерфейс для управления PostgreSQL |
| app | bank-rest:latest |
8060 → 8060 |
Spring Boot приложение |
-
Убедитесь, что установлены Java 17+ и Maven 3.6+ (или используйте Maven Wrapper).
-
В каталоге проекта выполните:
# на Unix/macOS ./mvnw clean package ./mvnw spring-boot:run -Dspring-boot.run.profiles=dev # на Windows PowerShell .\mvnw.cmd clean package .\mvnw.cmd spring-boot:run -Dspring-boot.run.profiles=dev
-
Перейдите в браузере по адресу:
http://localhost:8060
Чтобы сгенерировать файл docs/openapi.yaml, выполните в корне проекта:
# при наличии глобального Maven
mvn verify
# или с Maven Wrapper
./mvnw verify- OpenAPI (YAML):
docs/openapi.yaml - Swagger UI:
http://localhost:8060/swagger-ui.html
По дефолту уже созданы 2 пользователя: Админ и Обычный пользователь.
- Admin
- Логин:
admin - Пароль:
admin
- Логин:
- User:
- Логин:
user - Пароль:
user
- Логин: