Skip to content

Latest commit

 

History

History
105 lines (84 loc) · 5.56 KB

README.md

File metadata and controls

105 lines (84 loc) · 5.56 KB

Проект "Обмен валют"

Описание

Проект представляет собой REST API для управления валютами и обменными курсами. Позволяет просматривать и редактировать списки валют и обменных курсов, а также выполнять конвертацию произвольных сумм из одной валюты в другую.

Функциональность

Валюты

  • GET /currencies

    • Получение списка валют.
    • HTTP коды ответов:
      • 200 (успех)
      • 500 (ошибка сервера)
  • GET /currency/{code}

    • Получение конкретной валюты по её коду.
    • HTTP коды ответов:
      • 200 (успех)
      • 400 (код валюты отсутствует в адресе)
      • 404 (валюта не найдена)
      • 500 (ошибка сервера)
  • POST /currencies

    • Добавление новой валюты.
    • Поля формы: name, code, sign
    • HTTP коды ответов:
      • 201 (успех)
      • 400 (отсутствует нужное поле формы)
      • 409 (валюта с таким кодом уже существует)
      • 500 (ошибка сервера)

Обменные курсы

  • GET /exchangeRates

    • Получение списка всех обменных курсов.
    • HTTP коды ответов:
      • 200 (успех)
      • 500 (ошибка сервера)
  • GET /exchangeRate/{baseCode}{targetCode}

    • Получение конкретного обменного курса.
    • HTTP коды ответов:
      • 200 (успех)
      • 400 (коды валют пары отсутствуют в адресе)
      • 404 (обменный курс для пары не найден)
      • 500 (ошибка сервера)
  • POST /exchangeRates

    • Добавление нового обменного курса.
    • Поля формы: baseCurrencyCode, targetCurrencyCode, rate
    • HTTP коды ответов:
      • 201 (успех)
      • 400 (отсутствует нужное поле формы)
      • 409 (валютная пара с таким кодом уже существует)
      • 404 (одна или обе валюты из валютной пары не существуют в БД)
      • 500 (ошибка сервера)
  • PATCH /exchangeRate/{baseCode}{targetCode}

    • Обновление существующего обменного курса.
    • Поля формы: rate
    • HTTP коды ответов:
      • 200 (успех)
      • 400 (отсутствует нужное поле формы)
      • 404 (валютная пара отсутствует в базе данных)
      • 500 (ошибка сервера)

Обмен валюты

  • GET /exchange?from=BASE_CURRENCY_CODE&to=TARGET_CURRENCY_CODE&amount=$AMOUNT
    • Расчёт перевода определённого количества средств из одной валюты в другую.
    • HTTP коды ответов:
      • 200 (успех)
      • 400 (некорректные параметры запроса)
      • 404 (валюта или обменный курс не найдены)
      • 500 (ошибка сервера)

Таблицы базы данных

Currencies

Колонка Тип Комментарий
ID int Айди валюты, автоинкремент, первичный ключ
Code Varchar Код валюты
FullName Varchar Полное имя валюты
Sign Varchar Символ валюты

ExchangeRates

Колонка Тип Комментарий
ID int Айди курса обмена, автоинкремент, первичный ключ
BaseCurrencyId int ID базовой валюты, внешний ключ на Currencies.ID
TargetCurrencyId int ID целевой валюты, внешний ключ на Currencies.ID
Rate Decimal(6) Курс обмена единицы базовой валюты к единице целевой валюты

Примечания

  • Реализованы все сценарии обмена валют: по прямому курсу, обратному курсу и кросс-курсу.
  • Осуществляется корректное округление сконвертированных сумм до двух десятичных знаков.
  • Проект структурирован по паттерну MVC, использует DAO, сервисы, контроллеры и DTO классы.
  • Валидация запросов и обработка ошибок выполнены на всех уровнях приложения.
  • Используются уникальные индексы и внешние ключи в базе данных для обеспечения целостности данных.