Создать сервис, который обращается к сервису курсов валют, и отдает gif в ответ:
- если курс по отношению к рублю за сегодня стал выше вчерашнего, то отдаем рандомную отсюда https://giphy.com/search/rich
- если ниже - отсюда https://giphy.com/search/broke
Ссылки
- REST API курсов валют - https://docs.openexchangerates.org/
- REST API гифок - https://developers.giphy.com/docs/api#quick-start-guide
Must Have
- Сервис на Spring Boot 2 + Java / Kotlin
- Запросы приходят на HTTP endpoint, туда передается код валюты
- Для взаимодействия с внешними сервисами используется Feign
- Все параметры (валюта по отношению к которой смотрится курс, адреса внешних сервисов и т.д.) вынесены в настройки
- На сервис написаны тесты (для мока внешних сервисов можно использовать @mockbean или WireMock)
- Для сборки должен использоваться Gradle
- Результатом выполнения должен быть репо на GitHub с инструкцией по запуску
Nice to Have
- Сборка и запуск Docker контейнера с этим сервисом
В приложении зашит ключ api openexchangerates.org базового уровня. Доступ возможен только к курсам валют относительно USD. При использовании ключа с более широким доступом, необходимо:
- Заменить в .properties файлах (в т.ч. тестовых) ключ (openexchangerates.app.id)
- Загрузить и распаковать репозиторий
- Запустить терминал в папке проекта
- Запустить команду сборки, передавая имя образа в опции -t
docker build -t exchange-rates-service . - Проверить, что образ отображается при выполнении команды
docker images --all - Запустить контейнер командой
docker run -d -p 8880:8880 -t exchange-rates-service - Приложение доступно по: http://localhost:8880
| First Метод | UrL | Описание |
|---|---|---|
| GET | /reaction/{currency_code} | Получение gif по коду валюты |
Напоминаю, что с текущим ключом api доступна только ссылка на USD http://localhost:8880/reaction/USD При вводе любого другого значения будет получен INTERNAL_SERVER_ERROR