Данный репозиторий содержит микросервис Gateway, который служит единой точкой входа (API Gateway) для взаимодействия с другими сервисами в архитектуре. Он маршрутизирует входящие HTTP-запросы к соответствующим бэкенд-сервисам (Auth, Hosts, Sync) и обеспечивает централизованную обработку аутентификации, логирования и ошибок.
- Маршрутизация HTTP-запросов: Перенаправляет запросы к микросервисам Auth и Hosts на основе URL-пути.
- Маршрутизация gRPC-запросов: Осуществляет взаимодействие с сервисом Sync через gRPC.
- Централизованная аутентификация: Проверяет токены доступа, отправляя HEAD-запросы в микросервис Auth, прежде чем перенаправить запрос.
- Обработка сессий: Управляет сессиями хостов, включая их запуск и приглашение игроков.
- Логирование: Логирует входящие запросы для упрощения отладки и мониторинга.
- Обработка ошибок: Предоставляет стандартизированные ответы в случае недоступности бэкенд-сервисов или ошибок валидации.
- Веб-фреймворк: FastAPI для создания асинхронного, высокопроизводительного API.
- HTTP-клиент: httpx для асинхронных HTTP-запросов к другим микросервисам.
- gRPC: Используется для высокоэффективного межсервисного взаимодействия с сервисом синхронизации.
- Схема данных: Pydantic (models.py) для валидации данных и автоматической генерации схем API.
- Аутентификация: fastapi.security.HTTPBearer для обработки Bearer-токенов в заголовках запросов.
PDF с документацией Api сгенерирован с помощью инструмента openapi-to-pdf.
PDF, json, yaml
TODO