Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Gateway с агрегацией данных и кэшированием

API Gateway (или Backend for Frontend — BFF) объединяет данные из нескольких микросервисов и предоставляет клиентам единое REST API. Сервис поддерживает агрегацию ответов, кэширование данных и маршрутизацию запросов.

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

Функциональность Статус
MVP Сделано
Retry & Fallback (Polly) Сделано
Rate Limiting Сделано
Реальные микросервисы (HTTP клиенты) Сделано

Архитектура

Компоненты системы:

  • API Gateway (.NET 8): Единая точка входа, агрегация данных, маршрутизация
  • Сервис пользователей: Управление профилями пользователей
  • Сервис товаров: Каталог товаров и информация о продуктах
  • Сервис заказов: Управление заказами пользователей
  • Redis: Распределенное кэширование агрегированных ответов
  • Seq: Централизованное хранение и анализ структурированных логов

Быстрый старт

Предварительные требования

  • Docker и Docker Compose
  • .NET 8 SDK (для локальной разработки)

Запуск проекта

Клонирование репозитория

git clone https://github.com/Layvu/api-gateway-bff.git

cd api-gateway-bff

Запуск всех сервисов через Docker Compose

docker-compose up --build -d

Проверка

Сервис Адрес
API Gateway http://localhost:8080/api/profile/1
Seq logs http://localhost:5341 (логин/пароль для первого входа: admin/Admin123!)
Redis Работает на порту 6379

Использование

Основной сценарий (Gateway)

Агрегированный ответ (Пользователь + Заказы + Товары): http://localhost:8080/api/profile/1

Прямой доступ к микросервисам (для отладки)

Сервис Адрес
Users http://localhost:5001/api/users/1
Products http://localhost:5002/api/products
Orders http://localhost:5003/api/orders/user/1

Полный сброс докер томов (в случае проблем)

docker volume prune -f

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages