/balance_service

User balance HTTP API

Primary LanguageGo

User Balance API

Описание

Микросервис для работы с балансом пользователей (зачисление средств, списание средств, перевод средств от пользователя к пользователю, а также метод получения баланса пользователя). Сервис должен предоставлять HTTP API и принимать/отдавать запросы/ответы в формате JSON.

Схема базы данных

Схема базы данных

Настройка среды разработки

Установка инструментов (под MacOS)

Настройка окружения

  • Запуск postgres container:

    make postgres
  • Создание balance_db database:

    make createdb
  • Запуск db migration up all versions:

    make migrateup
  • Запуск db migration down all versions:

    make migratedown

 Генерация кода для БД (если вносятся изменения в схему бд)

  • Генерация SQL CRUD с помощью sqlc:

    make sqlc
    
    

Запуск

  • Запуск сервера:

    make server
  • Запуск тестов:

    make test

Пример запросов в Postman

  • Создание аккаунта (POST):

    http://localhost:8080/accounts
    {
    "owner": "Artem Fomin",
    "currency": "RUB"
    }
  • Получение информации по аккаунту (GET):

    http://localhost:8080/accounts/1
  • Пополнение баланса аккаунта (POST):

    http://localhost:8080/accounts/balance
    {
    "id": 1,
    "amount": 1000
    }
  • Перевод денег из одного аккаунта в другой (POST):

    http://localhost:8080/accounts
    {
        "from_account_id": 1,
        "to_account_id": 2,
        "amount": 100,
        "currency": "RUB"
    }