PS: Этот проект был создан для удовольствия и эксперимента, потому что мне было интересно попробовать реализовать нечто подобное.
Currency Rate Service предоставляет API для получения актуальных данных о валютных курсах. Этот сервис позволяет пользователям получать информацию о курсах валют для заданной валюты, а также поддерживает интеграцию с различными внешними системами для получения и обмена курсами.
- Получение актуальных курсов валют.
- Поддержка нескольких валют.
- Возможность настройки базовой валюты для получения курса других валют.
- Интеграция с внешними API для автоматического обновления данных.
В этом разделе собраны полезные ссылки, которые помогут вам проверить работу эндпоинтов сервиса и ознакомиться с его функционалом.
Для удобства тестирования всех доступных эндпоинтов сервиса, вы можете использовать Postman.
- Подключите коллекцию в Postman для быстрого доступа к API.
- Проверьте работу всех доступных методов и эндпоинтов.
Для локальной установки и запуска сервиса выполните следующие шаги:
1. Клонируйте репозиторий:
git clone https://github.com/LavrikPavlov/currency-rate-service.git
cd currency-rate-service2. Подготовка Maven:
mvn clean install3. Поднятие контейнера с БД:
Если у вас еще нет настроенной базы данных, вы можете поднять контейнер с нужной базой данных с помощью Docker.
Убедитесь, что у вас установлен Docker Desktop . После установки Docker, выполните команду для запуска контейнера с базой данных, используя docker-compose:
docker-compose up -dKafka-UI: localhost:9000 находиться по дефолтной ссылке.
Топик создается автоматически.
4. Миграции БД с помощью Liquibase:
Сервис БД, запущенный через docker-compose с использованием docker-compose,
автоматически создаёт необходимую схему в БД.
Для выполнения миграций с помощью Liquibase предусмотрен скрипт run-migration.sh.
module: container
path: /container/src/main/resources/script/run-migration.sh.5. Настройка application properties:
Для корректной работы сервиса, необходимо настроить файл конфигурации application.properties
под ваши нужды в модуле currency-rate-service.
Ниже приведены основные параметры, которые можно настроить.
Для настройки REST-запросов к API с курсами валют, используйте параметр feign.clients.cbr. Эта конфигурация позволяет вашему сервису отправлять запросы на внешний API для получения актуальных данных о курсах валют.
feign.clients.cbr.url = http://example.com/api/currency-rates # URL внешнего API для получения курсов
feign.clients.cbr.connectTimeout = 5000 # Время ожидания подключения, мс
feign.clients.cbr.readTimeout = 5000 # Время ожидания ответа, мсДля автоматического обновления валют через определенные интервалы времени, настройте шедулер с параметром toggle.scheduler.updateCurrency.
Это позволит сервису обновлять валютные курсы через настроенное расписание.
toggle.scheduler.updateCurrency.enable=true # Включение шедулера для обновления валют
toggle.scheduler.updateCurrency.cron="*/30 * * * * *" # Расписание работы шедулера (обновление каждые 30 секунд)