Skip to content

API Gateway для аутентификации, управления пользователями и проксирования запросов к микросервисам профилей, фотографий и свайпов сайта знакомств. Стек: Fastapi, Kafka, Alembic, Pydantic, Oauth2, Nginx, Docker, Ruff

Notifications You must be signed in to change notification settings

aquaracer/Fastapi-Auth-API-Gateway

Repository files navigation

API Gateway Auth Service


Описание

API Gateway Auth Service — центральный шлюз (API Gateway) для аутентификации, управления пользователями и проксирования запросов к микросервисам профилей, фотографий и свайпов. Сервис реализован на FastAPI, поддерживает OAuth (Google, Яндекс), JWT, интеграцию с Kafka и PostgreSQL.


🚀 Основные возможности

  • Единая точка входа для клиентских приложений (API Gateway)
  • Аутентификация через Google, Яндекс и по логину/паролю
  • JWT-аутентификация
  • Проксирование запросов к микросервисам профилей, фотографий, свайпов
  • Интеграция с Kafka для событий свайпов
  • Swagger/OpenAPI-документация
  • Миграции БД через Alembic

🛠️ Технологический стек

  • Python 3.12 — основной язык разработки
  • FastAPI — современный асинхронный web-фреймворк
  • SQLAlchemy — ORM для работы с базой данных
  • Alembic — миграции схемы БД
  • PostgreSQL — реляционная база данных
  • Kafka (aiokafka) — брокер сообщений для асинхронной обработки событий (например, свайпы)
  • Docker, docker-compose — контейнеризация и оркестрация сервисов
  • Poetry — управление зависимостями и пакетами
  • Pydantic — валидация и сериализация данных
  • OAuth (Google, Yandex) — поддержка авторизации через внешние провайдеры
  • ruff — быстрый и современный линтер для Python
Архитектурная схема (текст)
[Клиент]
   |
   v
[API Gateway (этот сервис)]
   |  |  |
   |  |  |---> [Микросервис профилей]
   |  |---> [Микросервис фотографий]
   |---> [Kafka] <--- [Микросервис свайпов]
   |
[PostgreSQL]

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

Развертывание с помощью Docker

  1. Создайте папку с проектом и склонируйте репозиторий:
mkdir Auth-API-Gateway
cd Auth-API-Gateway
git clone https://github.com/aquaracer/Fastapi-Auth-API-Gateway.git
  1. Настройте переменные окружения в файле .env.

  2. Соберите и запустите контейнеры:

docker-compose up --build
  1. Примените миграции базы данных:
docker exec -it auth-api-gateway bash
poetry run alembic upgrade head

Приложение будет доступно по следующим адресам:

  • API: http://localhost:8000
  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

📚 Основные эндпоинты

Метод URL Описание
POST /auth Вход по логину/паролю
GET /auth/login/google Редирект на Google OAuth
GET /auth/google Callback от Google OAuth
GET /auth/login/yandex Редирект на Яндекс OAuth
GET /auth/yandex Callback от Яндекс OAuth
POST /user Регистрация пользователя
POST /user_profile Создать профиль
GET /user_profile/list Получить список профилей
PATCH /user_profile Обновить профиль
DELETE /user_profile Удалить профиль
POST /photo Загрузить фото
GET /photo/list_own_photos Получить свои фото
GET /photo/list_users_photos Получить фото других пользователей
DELETE /photo/{photo_id} Удалить фото
POST /swipes/process_swipes Отправить событие свайпа (Kafka)

About

API Gateway для аутентификации, управления пользователями и проксирования запросов к микросервисам профилей, фотографий и свайпов сайта знакомств. Стек: Fastapi, Kafka, Alembic, Pydantic, Oauth2, Nginx, Docker, Ruff

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published