Skip to content

Repository files navigation

Currency Exchange Service

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

Архитектура

Приложение состоит из следующих микросервисов:

  • API Gateway (порт 5000)
  • User Service (порт 5001)
  • Finance Service (порт 5002)
  • Background Service
  • Database Migrator

Запуск приложения

docker-compose up --build

API Endpoints

User Service (http://localhost:5000/api/users)

Регистрация пользователя

POST /api/users/register
Content-Type: application/json

{
    "name": "string",
    "password": "string"
}

Вход в систему

POST /api/users/login
Content-Type: application/json

{
    "name": "string",
    "password": "string"
}

Response:
{
    "token": "string",
    "user": {
        "id": "integer",
        "name": "string"
    }
}

Выход из системы

POST /api/users/logout
Authorization: Bearer {token}

Finance Service (http://localhost:5000/finance-api/currencies)

Все эндпоинты требуют авторизации (заголовок Authorization: Bearer {token})

Получение избранных валют пользователя

GET /finance-api/currencies
Authorization: Bearer {token}

Получение всех доступных валют

GET /finance-api/currencies/all
Authorization: Bearer {token}

Добавление валюты в избранное

POST /finance-api/currencies/favorites/{currencyId}
Authorization: Bearer {token}

Удаление валюты из избранного

DELETE /finance-api/currencies/favorites/{currencyId}
Authorization: Bearer {token}

Особенности реализации

  • Используется JWT для аутентификации
  • Автоматическое обновление курсов валют через Background Service
  • Postgres для хранения данных
  • Ocelot в качестве API Gateway
  • Entity Framework Core для работы с базой данных
  • Автоматическая миграция базы данных при запуске

Требования

  • Docker
  • Docker Compose

Разработка

  1. Клонируйте репозиторий
  2. Установите Docker и Docker Compose
  3. Запустите приложение командой docker-compose up --build
  4. API будет доступно по адресу http://localhost:5000

About

Тестовое задание: Микросервисное приложение для отслеживания курсов валют с возможностью авторизации пользователей и управления списком избранных валют.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages