- Descripción
- Requisitos
- Instalación
- Configuración
- Uso
- API Endpoints
- Estructura del Proyecto
Important
Este proyecto de prueba fue creado para explorar y demostrar diversas funcionalidades de FastAPI, incluyendo la gestión de productos y usuarios con operaciones CRUD, manipulación de archivos y lógica de imágenes. Además, se ha implementado un sistema de autenticación y autorización para >asegurar ciertas rutas y funcionalidades del proyecto. La estructura modular del código permite una fácil expansión y adaptación a necesidades futuras.
Lista de requisitos necesarios para ejecutar el proyecto, por ejemplo:
- Python 3.x
- FastAPI
- MongoDB
Se recomienda utilizar un entorno virtual para aislar las dependencias del proyecto. Puedes seguir estos pasos:
-
Crear un entorno virtual:
python -m venv venv
-
Activar el entorno virtual (Windows):
venv\Scripts\activate
Activar el entorno virtual (Linux/Mac):
source venv/bin/activate
-
Instalar las dependencias:
pip install -r requirements.txt
Este procedimiento creará un entorno virtual, lo activará y luego instalará las dependencias del proyecto en ese entorno. Asegúrate de ajustar la plataforma específica para activar el entorno virtual (puede variar entre Windows y sistemas basados en Unix).
Configura la conexión a la base de datos en db/client.py. Asegúrate de tener los permisos necesarios para acceder a la base de datos.
Para iniciar el proyecto, simplemente ejecuta el siguiente comando en tu terminal:
uvicorn main:app --reload
Esto iniciará el servidor FastAPI y permitirá que accedas a las API y servicios definidos en el archivo main.py. Asegúrate de tener todas las dependencias instaladas y que estás dentro del entorno virtual si has optado por utilizar uno.
Una vez que el servidor esté en funcionamiento, puedes acceder a las rutas definidas en los routers de api/ para interactuar con las diferentes funcionalidades del proyecto.
Productos | Usuarios |
---|---|
GET /products/list: Obtiene la lista de productos. | GET /users/list: Obtiene la lista de usuarios. |
GET /products/{id}: Obtiene un producto por ID. | GET /users/{id}: Obtiene un usuario por ID. |
POST /products/add: Agrega un nuevo producto. | POST /users/add: Agrega un nuevo usuario. |
PUT /products/update/{id}: Actualiza un producto por ID. | PUT /users/update/{id}: Actualiza un usuario por ID. |
DELETE /products/delete/{id}: Elimina un producto por ID. | DELETE /users/delete/{id}: Elimina un usuario por ID. |
GET /products/show/{archivo}: Muestra un archivo asociado a un producto. | POST /users/login: Inicia sesión y obtiene un token de acceso. |
project-root/
│
├── api/
│ ├── __init__.py
│ ├── product.py
│ └── user.py
│
├── db/
│ ├── __init__.py
│ └── client.py
│
├── models/
│ ├── __init__.py
│ ├── producto.py
│ └── user.py
│
├── services/
│ ├── __init__.py
│ ├── producto.py
│ └── user.py
│
├── main.py
└── requirements.txt