Проект представляет собой 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 (ошибка сервера)
Колонка | Тип | Комментарий |
---|---|---|
ID | int | Айди валюты, автоинкремент, первичный ключ |
Code | Varchar | Код валюты |
FullName | Varchar | Полное имя валюты |
Sign | Varchar | Символ валюты |
Колонка | Тип | Комментарий |
---|---|---|
ID | int | Айди курса обмена, автоинкремент, первичный ключ |
BaseCurrencyId | int | ID базовой валюты, внешний ключ на Currencies.ID |
TargetCurrencyId | int | ID целевой валюты, внешний ключ на Currencies.ID |
Rate | Decimal(6) | Курс обмена единицы базовой валюты к единице целевой валюты |
- Реализованы все сценарии обмена валют: по прямому курсу, обратному курсу и кросс-курсу.
- Осуществляется корректное округление сконвертированных сумм до двух десятичных знаков.
- Проект структурирован по паттерну MVC, использует DAO, сервисы, контроллеры и DTO классы.
- Валидация запросов и обработка ошибок выполнены на всех уровнях приложения.
- Используются уникальные индексы и внешние ключи в базе данных для обеспечения целостности данных.