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 up --build -d
| Сервис | Адрес |
|---|---|
| API Gateway | http://localhost:8080/api/profile/1 |
| Seq logs | http://localhost:5341 (логин/пароль для первого входа: admin/Admin123!) |
| Redis | Работает на порту 6379 |
Агрегированный ответ (Пользователь + Заказы + Товары): 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