Este repositorio es un Showcase de Ingeniería de Software que implementa un microservicio de autenticación robusto, siguiendo principios de Clean Architecture y SOLID.
- Python 3.12 + FastAPI (Alto rendimiento y tipado moderno).
- SQLAlchemy 2.0 (ORM con soporte asíncrono).
- Alembic (Gestión de migraciones de base de datos).
- PostgreSQL (Persistencia relacional).
- Docker & Docker Compose (Contenerización de infraestructura).
- JWT & Bcrypt (Seguridad avanzada para tokens y hashing).
El código está organizado en capas para garantizar el desacoplamiento:
app/api: Controladores y definición de rutas.app/core: Configuraciones globales y lógica de seguridad (JWT).app/infrastructure: Modelos de base de datos y conexión (SQLAlchemy).app/schemas: DTOs y validación de datos con Pydantic.app/services: Lógica de negocio y orquestación.
-
Clonar y configurar:
git clone [email protected]:LuisChacha/fastapi-clean-architecture-auth.git cd fastapi-clean-architecture-auth
-
Configurar el entorno virtual (venv):
# Crear el entorno python3 -m venv venv # Activarlo (Linux/macOS) source venv/bin/activate -
Instalar dependencias:
pip install --upgrade pip pip install -r requirements.txt -
Configurar variables de entorno:
cp .env.example .env # No olvides editar el .env si necesitas cambiar alguna credencial -
Levantar infraestructura:
docker compose up -d
-
Ejecutar migraciones y servidor:
alembic upgrade head uvicorn app.main:app --reload
Una vez configurado el entorno y la base de datos, inicia el servidor:
uvicorn app.main:app --reloadDocumentación Interactiva: Visita http://localhost:8000/docs para probar los endpoints de Registro, Login y Health Check.