module
0.0.0-20240524114329-7d7c371d30a6
Repository: https://github.com/instinctg/exchanges.git
Documentation: pkg.go.dev
# README
Test task
Задачи:
Exchanges
Написать REST сервис по расчету всех вариантов размена для указанной суммы денег. На вход принимается HTTP запрос в формате:
{ "amount": 400, "banknotes": [ 5000, 2000, 1000, 500, 200, 100, 50 ] }
где amount – сумма денег, banknotes – доступные номиналы банкнот
Формат ответа:
{ "exchanges":
- [200, 200],
- [200, 100, 100],
- [200, 100, 50, 50],
- [200, 50, 50, 50, 50],
- [100, 100, 100, 100],
- [100, 100, 100, 50, 50],
- [100, 100, 50, 50, 50, 50],
- [100, 50, 50, 50, 50, 50, 50],
- [50, 50, 50, 50, 50, 50, 50, 50]
}
Требования к оформлению
- конфигурация (хост, порт, уровень логирования)
- graceful shutdown
- unit тесты алгоритма
- оформлен в общедоступном git репозитории
Результат
- реализовал конфигурацию
Host : localhost
Port : 8080
Loglevel: INFO
- graceful shutdown в handler.go
- написал unit test для алгоритма
Как запустить сервис?
- Клонируем репозиторий:
git clone https://github.com/instinctG/exchanges.git
- Запуск сервера:
make server
Команды
Проверить на тесты:
make test
Завершить сервер:
Ctrl + C
Эндпоинт
Токены:
- POST /exchange
Пример ответa API:
Использовал Postman.
POST /exchange