Задание находится здесь
- Разработка, следуя дизайну REST API.
- Gin Web Framework для роутинга.
- Создание файлов миграций для поднятия БД с помощью утилиты go-migrate.
- Регистрация и аутентификация.
- Работа с JWT. Middleware для определения пользователя .
- Конфигурация приложения с помощью библиотеки cleanenv.
- Логирование ошибок с помощью библиотеки logrus.
- Graceful Shutdown для безопасной остановки приложения.
Для отслеживания курса валюты можно подключиться по websocket'у к API alphavantage и сравнивать цену монеты с желаемой ценой пользователя. Когда курс будет удовлетворять требованиям, со счёта пользователя списываются средсва и определённое кол-во монет зачисляется на его счёт. Если ползователь решил отменить операцию до её совершения, то со счёта ничего не спишется и обработчик прекратит слушать этот курс.
-X POST http://{host}:{port}/auth/sign-up — регистрация
-X POST http://{host}:{port}/auth/sign-in — аутентификация
-X POST http://{host}:{port}/api/accounts/ — Создать счёт
-X GET http://{host}:{port}/api/accounts/ — Получить все счета пользователя
-X GET http://{host}:{port}/api/accounts/{id} — Получить счёт по id
-X PUT http://{host}:{port}/api/accounts/deposit/{id} — Пополнить счёт по id
| Операция над | Тело запроса |
|---|---|
| Пользователями | { "name" : " ", "username" : " ", "password" : " " } |
| Счетами | { "currency": " ", "balance": } |
Для запуска приложения перейдите в дириекторию проекта в терминале и запустите следующие команды:
make app-build && make app-run
Если запуск производится впервые, то необходимо применить миграции к БД:
make migrations_up
