Esta es una API profesional desarrollada con FastAPI que implementa un sistema de gestión de usuarios, manejo de saldos (fondos) y procesamiento de pedidos. Utiliza una arquitectura asíncrona y estándares de seguridad de alto nivel. La intención de este proyecto es la de aprender a crear una API, gestionar una base de datos y aprender seguradad basica como el "hashing".
- Framework:** FastAPI (Asíncrono).
- Base de Datos: PostgreSQL utilizando
psycopg_poolpara una gestión eficiente de conexiones. - Seguridad: * Hasheo de contraseñas con Argon2id (vía
argon2-cffi).- Autenticación mediante JWT (JSON Web Tokens).
- Protección de rutas con OAuth2 y validación de roles (User/Admin).
- Validación: Modelos de datos estrictos con Pydantic.
- Gestión de Ciclo de Vida: Uso de
lifespanpara inicializar y cerrar el pool de conexiones de forma segura.
main.py: Punto de entrada y configuración de rutas.database.py: Configuración del pool de conexiones a PostgreSQL.schemas.py: Definición de modelos Pydantic (Data Transfer Objects).utils.py: Utilidades de seguridad, hashing y gestión de tokens.routes/: Módulos de rutas (usuarios, pedidos, fondos, registro).
-
Clona el repositorio:
git clone [https://github.com/tu-usuario/tu-proyecto.git](https://github.com/tu-usuario/tu-proyecto.git) cd tu-proyecto -
Crea e inicia un entorno virtual:
python -m venv venv source venv/bin/activate # En Windows: venv\Scripts\activate
-
Instala las dependencias:
pip install fastapi uvicorn psycopg[pool] python-dotenv argon2-cffi python-jose[cryptography] python-multipart
-
Configura las variables de entorno: Crea un archivo
.enven la raíz con los siguientes campos:DB_HOST=tu_host DB_NAME=tu_db DB_USER=tu_usuario DB_PASS=tu_password SECRET_KEY=tu_clave_secreta_super_segura ALGORITHM=HS256
Para iniciar el servidor de desarrollo:
uvicorn main:app --reload