Este es un proyecto construido con FastAPI. El objetivo de este proyecto es proporcionar dos APIs para la gestión de pedidos y productos. Se ejecutan a través de un solo script (main.py). Ambas APIs están documentadas y pueden ser probadas a través de Swagger UI.
Para ejecutar este proyecto, asegúrate de tener instaladas las siguientes dependencias en tu máquina local:
- Python 3.8 o superior
- virtualenv para crear un entorno virtual
Clona este repositorio en tu máquina local utilizando git:
git clone https://github.com/jmmonzonn/prueba_apolo_ai.git
cd prueba_apolo_aipip install virtualenv
python3 -m venv venvvenv\Scripts\activatesource venv/bin/activatepip install -r requirements.txtEn el proyecto encontrarás un archivo llamado main.py. Debes ejecutar este archivo para generar las variables de entorno y para ejecutar las dos apis.
python main.py| Método | Endpoint | Descripción | Parámetros |
|---|---|---|---|
GET |
/api_products/products |
Lista todos los productos en la base de datos. | - |
POST |
/api_products/product |
Crea un nuevo producto. | - name (str): Nombre del producto. - price (float): Precio del producto. - stock (int, opcional): Cantidad en stock. |
PATCH |
/api_products/product/{product_id} |
Actualiza el stock de un producto. | - product_id (uuid): ID del producto. - stock (int): Nueva cantidad en stock. |
| Método | Endpoint | Descripción | Parámetros |
|---|---|---|---|
POST |
api_orders/order |
Crea un nuevo pedido. | - products (list[dict]): Lista de productos en el pedido. Cada producto debe incluir: - product_id (uuid): ID del producto. - quantity (int): Cantidad solicitada. |
GET |
/api_orders/orders |
Lista todos los pedidos registrados en la base de datos. | - |
La documentación completa de los endpoints está disponible a través de Swagger UI, lo que te permitirá probar las APIs fácilmente desde tu navegador.
API Products: http://127.0.0.1:8000/docs API Orders: http://127.0.0.1:8001/docs En estas páginas podrás ver una lista de todos los endpoints disponibles, sus métodos HTTP, parámetros y ejemplos de respuesta.