WeBalance — простой сервис для управления кошельками и операций над балансом. API реализовано на FastAPI. Доступ к базе данных через SQLAlchemy.
- Создание кошелька для пользователя
- Получение информации о кошельке по идентификатору
- Выполнение операций (пополнение / списание) для кошелька
- Python 3.14+ (проект разрабатывался в виртуальном окружении)
- Зависимости перечислены в
requirements.txtустановите через
pip install -r requirements.txt- Клонируйте репозиторий и перейдите в каталог проекта.
- Создайте виртуальное окружение и активируйте его:
python -m venv env
env\Scripts\Activate- Установите зависимости:
pip install -r requirements.txtЗапустите приложение с помощью uvicorn:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000Или используйте Docker Compose:
docker-compose up --buildНастройки проекта находятся в app/config.py. При необходимости используйте переменные окружения для параметров подключения к БД и других опций.
Базовый префикс: /api/v1/wallets
Endpoints:
-
GET
/api/v1/wallets/{wallet_id}— получить информацию о кошельке по UUID.- Успех:
200 OK, возвращается модельWalletResponce. - Ошибки:
404если кошелек не найден,500— внутренняя ошибка.
- Успех:
-
POST
/api/v1/wallets/— создать новый кошелек для пользователя.- Тело запроса:
WalletCreateRequest(например, содержитuser_id). - Успех:
201 Created, возвращаетсяWalletResponce.
- Тело запроса:
-
POST
/api/v1/wallets/{wallet_id}/operations— выполнить операцию над кошельком (пополнение/списание).- Тело запроса:
WalletOperationRequest(поля:operation_type,amount, ...). - Успех:
200 OK, возвращаетсяWalletOperationResponse. - Ошибки:
400при валидации,404если кошелек не найден,500при ошибках сервера.
- Тело запроса:
В проекте присутствуют тесты с использованием pytest. Запуск:
pytest -q