Skip to content

Latest commit

 

History

History
127 lines (113 loc) · 3.95 KB

File metadata and controls

127 lines (113 loc) · 3.95 KB

FastAPI

Estructura del proyecto

Este proyecto sigue una arquitectura modular en FastAPI, separando responsabilidades en capas como rutas, configuración, acceso a datos, modelos, esquemas, repositorios y servicios.

api_retail/
├─ app/
│  ├─ __init__.py
│  ├─ main.py
│  ├─ api/
│  │  ├─ __init__.py
│  │  └─ v1/
│  │     ├─ __init__.py
│  │     └─ routers/
│  │        ├─ __init__.py
│  │        ├─ health.py
│  │        ├─ customers.py
│  │        ├─ products.py
│  │        ├─ orders.py
│  │        └─ metrics.py
│  ├─ core/
│  │  ├─ __init__.py
│  │  ├─ config.py
│  │  └─ logging.py
│  ├─ db/
│  │  ├─ __init__.py
│  │  ├─ base.py
│  │  └─ session.py
│  ├─ models/
│  │  ├─ __init__.py
│  │  ├─ customer.py
│  │  ├─ department.py
│  │  ├─ category.py
│  │  ├─ product.py
│  │  ├─ order.py
│  │  └─ order_item.py
│  ├─ schemas/
│  │  ├─ __init__.py
│  │  ├─ common.py
│  │  ├─ customer.py
│  │  ├─ product.py
│  │  ├─ order.py
│  │  └─ metrics.py
│  ├─ repositories/
│  │  ├─ __init__.py
│  │  ├─ customers.py
│  │  ├─ products.py
│  │  ├─ orders.py
│  │  └─ metrics.py
│  └─ services/
│     ├─ __init__.py
│     ├─ customers.py
│     ├─ products.py
│     ├─ orders.py
│     └─ metrics.py
├─ .env.example
├─ requirements.txt
└─ README.md

Descripción de la estructura

app/
Contiene el código fuente principal de la aplicación.
• main.py: punto de entrada de la aplicación FastAPI.
init.py: marca el directorio como paquete Python.

app/api/
Agrupa las versiones de la API y sus rutas.

app/api/v1/routers/
Contiene los endpoints organizados por dominio funcional.
• health.py: rutas de verificación del estado de la API.
• customers.py: endpoints relacionados con clientes.
• products.py: endpoints relacionados con productos.
• orders.py: endpoints relacionados con pedidos.
• metrics.py: endpoints para métricas e indicadores del negocio.

app/core/

Contiene configuraciones globales y componentes transversales.
• config.py: variables de configuración de la aplicación.
• logging.py: configuración de logs y trazabilidad.

app/db/
Gestiona la conexión y configuración de la base de datos.
• base.py: definición base para los modelos ORM.
• session.py: creación y gestión de sesiones de base de datos.

app/models/
Define las entidades del sistema usando ORM.
• customer.py: modelo de clientes.
• department.py: modelo de departamentos.
• category.py: modelo de categorías.
• product.py: modelo de productos.
• order.py: modelo de pedidos.
• order_item.py: modelo de detalle de pedidos.

app/schemas/
Contiene los esquemas de validación y serialización con Pydantic.
• common.py: esquemas compartidos o utilitarios.
• customer.py: esquemas para clientes.
• product.py: esquemas para productos.
• order.py: esquemas para pedidos.
• metrics.py: esquemas para métricas.

app/repositories/

Implementa la capa de acceso a datos.
• customers.py: consultas y operaciones de clientes.
• products.py: consultas y operaciones de productos.
• orders.py: consultas y operaciones de pedidos.
• metrics.py: consultas para métricas del negocio.

app/services/
Contiene la lógica de negocio de la aplicación.
• customers.py: reglas de negocio para clientes.
• products.py: reglas de negocio para productos.
• orders.py: reglas de negocio para pedidos.
• metrics.py: lógica para el cálculo de métricas.