Данный микросервис с HTTP API был разработан по условиям тестового задания в Авито
Используемые технологии:
- Postgres
- Docker
HTTP API принимает запросы и возвращает ответы в формате JSON
Метод: POST
Пополняет баланс пользователя, если account_id или balance_id отсутствует, создаёт новую строку в БД с этими id
Метод: POST
Снимает деньги с баланса пользователя
Метод: POST
Переводит деньги от одного пользователя другому
Метод: GET
Возвращает баланс
Пример ответа:
Также можно перевести баланс в другую валюту, добавив в query параметр currency=код_валюты
Для конвертации валют используется ExchangeRate-API
Для использования своего API Key нужно поменять URL в .env в переменной EXCHANGE_RATE_API_URL
Пример:
Метод: GET
Возвращает всю историю транзакций balance_id (т.е. самого кошелька)
Поддерживает сортировку по возрастанию и убыванию по дате транзакции и её сумме (указывать её необязательно):
- "date_asc", "date_desc" - сортировка транзакций по дате
- "value_asc", "value_desc" - сортировка транзакций по сумме
Пример ответа:
Метод: GET
Возвращает {page} страницу из истории транзакций balance_id (т.е. самого кошелька)
Сортировка работает аналогично /history
Количество записей на страницу можно поменять в .env перед деплоем, изменив MAX_HISTORY_PAGE_LEN
Пример ответа: