Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wallet API

Описание проекта

Wallet API — это сервис для управления кошельками. Сервис предоставляет REST API для выполнения следующих операций:

  • Пополнение кошелька.
  • Снятие средств с кошелька.
  • Получение баланса кошелька.

Проект написан на языке Go с использованием Gorilla Mux для маршрутизации. В качестве базы данных используется PostgreSQL. Для управления сервисом предусмотрен Docker Compose.


Требования

  • Docker и Docker Compose
  • Go (если требуется локальная сборка)

Переменные окружения

Перед запуском проекта создайте файл config.env с параметрами для подключения к базе данных. К примеру:

DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=wallet_db
DB_SSLMODE=disable

Как запустить проект

1. Запуск с использованием Docker Compose

Для запуска проекта используйте следующую команду:

docker-compose up --build

Docker Compose автоматически поднимет два сервиса:

  • wallet_api — приложение API.
  • postgres — база данных PostgreSQL.

После успешного запуска API будет доступно по адресу: http://localhost:8080.

2. Остановка проекта

Чтобы остановить проект, выполните:

docker-compose down

Команды REST API

В качестве примера в таблице SQL проекта используется следующее walletId:19623ea0-ea8a-4b57-8303-1d81468a8f9d

Также в кошельке уже имеется amount = 500.

1. Пополнение кошелька

POST /api/v1/wallet

Пример запроса:

{
    "walletId": "19623ea0-ea8a-4b57-8303-1d81468a8f9d",
    "operationType": "DEPOSIT",
    "amount": 1000
}

Коды ответа:

  • 200 OK — успешное выполнение операции.
  • 400 Bad Request — неверный формат данных.
  • 500 Internal Server Error — ошибка сервера.

2. Снятие средств

POST /api/v1/wallet

Пример запроса:

{
    "walletId": "19623ea0-ea8a-4b57-8303-1d81468a8f9d",
    "operationType": "WITHDRAW",
    "amount": 500
}

Коды ответа:

  • 200 OK — успешное выполнение операции.
  • 400 Bad Request — неверный формат данных или недостаточно средств.
  • 500 Internal Server Error — ошибка сервера.

3. Получение баланса

GET /api/v1/wallets/{id}

Пример запроса:

GET /api/v1/wallets/19623ea0-ea8a-4b57-8303-1d81468a8f9d

Пример ответа:

{
    "balance": 4500
}

Коды ответа:

  • 200 OK — баланс успешно получен.
  • 400 Bad Request — неверный формат ID.
  • 500 Internal Server Error — ошибка сервера.

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

Юнит-тесты

Для запуска юнит-тестов выполните команду:

go test ./... -v

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages