Skip to content

stormdynamics/swerpctask

Repository files navigation

SWERPCTASK

Приложение JSON RPC 2.0 API сервис разработан в рамках тестового задания.

API функции

Вызовы API функций приложения происходят с использованием протокола HTTP и JSON RPC, пример:

--> {"jsonrpc": "2.0", "method": "Api.GetNumber", "params": [], "id": 1}
<-- {"result": 0, "id": 1}

Список API функций

  • Api.GetNumber - Текущее значение счетчика
  • Api.IncrementNumber - Увеличение счетчика
  • Api.SetSettings - Установка максимального значения счетчика и значения приращения

Настройки

Все настройки задаются через переменые окружения.

Настройки HTTP сервера приложения:

  • APP_HOST - хост HTTP сервера (по умолчанию: 127.0.0.1)
  • APP_PORT - порт HTTP сервера (по умолчанию: 8080)
  • APP_API_PATH - путь URI для вызова API (по умолчанию: /api)

Настройки БД приложения:

  • DB_HOST - хост базы данных (по умолчанию: 127.0.0.1)
  • DB_PORT - порт БД (по умолчанию: 3306)
  • DB_USER - пользователь БД (по умолчанию: root)
  • DB_PASS - пароль для подключения к БД (по умолчанию:)
  • DB_NAME - название базы данных (по умолчанию: swetask)
  • DB_COLT - кодирока БД (по умолчанию: utf8_general_ci)

База данных

В качестве БД рекомендуется к использованию современная СУБД MySQL - MySQL/MariaDB

Миграции

В приложение сервиса встроен менеджер миграций на базе проекта Goose.

Для работы с менеджером миграций необходимо выполнить команду:

./swetaskrpc migrate - будет напечатана справка по работе с миграциями.

Директории

Краткое описание директорий

  • docker - директория для Docker файлов используемых при развертке приложения
  • migrations - SQL (MySQL) файлы для исполнения миграций
  • src - исходный код приложения

Сборка

Для сборки необходимо клонировать данный репозиторий на ПК или сервер:

git clone https://github.com/stormdynamics/swerpctask.git

Сборка из директории на локальном ПК

  • Установить GoLang не ниже версии 1.14
  • Выполнить команду - go mod download
  • Выполнить команду - go build

Сбока Docker-Compose

Выполнить команду:

docker-compose -f docker-compose.yml up -d --build

Зависимости

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

  • драйвер MySQL - github.com/go-sql-driver/mysql
  • менеджер миграций - github.com/pressly/goose

Для тестов используются зависимости:

  • макеты(mockup) БД - github.com/DATA-DOG/go-sqlmock

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published