Необходимо разработать API калькулятора обменного курса между крипто и фиатными валютами. В API отправляем исходную и целевую валюты с суммой, ожидаем увидеть результат конвертации в реальном времени. Курсы должны обновляться каждую минуту через фоновую задачу.
Доступные курсы для обмена необходимо брать из БД (Postgresql). Достаточно указать название валюты, код валюты/токена и его доступность (доступен или нет). Если валюта недоступна для обмена, то возвращать при вызове API ошибку.
- Код должен быть написан на Go не ниже 1.20
- Для логирования можно использовать zerolog
- Хранение валютных пар должно быть в структурах данных Go
- Для API использовать Go Fiber
- Скорость работы API не должна превышать 100мс
- Для получения курсов валютных пар использовать https://www.fastforex.io/
- Поддерживать следующие валюты: EUR, USD, CNY, USDT, USDC, ETH
- Курсы обновляются в фоне каждую минуту
- Задание должно быть сдано посредством платформы GitHub или GitLab
- Качество кода - код должен быть понятным, читаемым и соответствовать https://go.dev/doc/effective_go
- Обработку ошибок. Никаких Panic!
- Расширяемость. Например, добавление новой валюты через БД
- Документацию с использованием https://github.com/swaggo/swag
Расчет может происходить только между крипто-валютами и фиатными валютами. То есть, допустимые кейсы обмена: крипто-фиат (C2F) и фиат-крипто (F2C), Не допустимые: крипто-крипто (C2C) и фиат-фиат (F2F).