Skip to main content

FastAPI framework template structure without dependencies - use as a starting point for FastAPI projects

Project description

FastAPI Frame

PyPI version Python versions License: MIT

Un template/esqueleto de proyecto FastAPI sin dependencias. Proporciona una estructura de archivos organizada para proyectos FastAPI con entidades Framework y Endpoint personalizadas.

⚠️ Importante

Este paquete es un template sin dependencias funcionales. Los archivos incluidos son un esqueleto de proyecto que necesitarás personalizar e instalar las dependencias requeridas según tus necesidades.

🚀 Características

  • Estructura de proyecto organizada para FastAPI
  • 🏗️ Arquitectura modular con separación clara de responsabilidades
  • 📁 Entidades personalizadas (Framework y Endpoint en lugar de categorías/productos)
  • 📊 Esquemas de base de datos preparados para personalizar
  • 🔄 Templates de controladores y middleware
  • 📝 Estructura OpenAPI preparada
  • 🛡️ Templates de seguridad incluidos

📦 Instalación

pip install fastapi-frame

🎯 Uso como template

Después de instalar, los archivos estarán disponibles en tu entorno Python:

# Los archivos se instalan en: site-packages/fastapi/
# Puedes acceder a la estructura del proyecto en:
import fastapi

# Ver la ubicación de los archivos
print(fastapi.__file__)  # Muestra dónde están los archivos

# Para usar como template:
# 1. Instala las dependencias que necesites (fastapi, sqlmodel, etc.)
# 2. Copia los archivos que quieras usar de la estructura
# 3. Personaliza según tus necesidades

📋 Dependencias recomendadas

Este template no incluye dependencias. Instala las que necesites:

pip install fastapi starlette pydantic sqlmodel sqlalchemy uvicorn

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

🏗️ Estructura del proyecto

fastapi-frame/
├── dependencies/          # Gestión de dependencias y BD
│   ├── entities/         # Modelos de datos (Framework, Endpoint)
│   └── registry.py       # Registro de base de datos
├── openapi/              # Controladores de API
│   ├── core.py          # Endpoints principales
│   └── tasks.py         # Gestión de tareas
├── middleware/           # Middleware personalizado
└── security/            # Utilidades de seguridad

🔍 Funcionalidades principales

1. Gestión de Frameworks

from fastapi_frame.dependencies import Framework, FrameworkTypes

# Crear un nuevo framework
framework = Framework(
    name="FastAPI REST API",
    type=FrameworkTypes.API_FRAMEWORK
)

2. Endpoints dinámicos

from fastapi_frame.dependencies import Endpoint

# Definir endpoint
endpoint = Endpoint(
    name="/users",
    method="GET",
    description="Obtener lista de usuarios",
    framework_id=1
)

3. Búsqueda inteligente

# Búsqueda por texto
response = await client.post("/api/v1/search/text", json={
    "query": "api rest fastapi"
})

🛠️ Desarrollo

Requisitos

  • Python 3.8+
  • FastAPI 0.100.0+
  • SQLModel 0.0.8+

Configuración de desarrollo

git clone https://github.com/tu-usuario/fastapi-frame.git
cd fastapi-frame
pip install -e ".[dev]"

Ejecutar tests

pytest

Formatear código

black .
isort .

📚 Documentación

La documentación completa está disponible en GitHub.

Ejemplos de uso

Configuración básica de base de datos

import os
from fastapi_frame.dependencies import DatabaseRegistry

# Configurar variables de entorno
os.environ["DB_HOST"] = "localhost"
os.environ["DB_USER"] = "user"
os.environ["DB_PASSWORD"] = "password"
os.environ["DB_NAME"] = "fastapi_templates"

# Inicializar
DatabaseRegistry.initialize()

Usar los routers incluidos

from fastapi import FastAPI
from fastapi_frame.openapi import core_router, tasks_router

app = FastAPI()
app.include_router(core_router, prefix="/api/v1", tags=["core"])
app.include_router(tasks_router, prefix="/api/v1", tags=["tasks"])

🤝 Contribuir

¡Las contribuciones son bienvenidas! Por favor:

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/nueva-funcionalidad)
  3. Commit tus cambios (git commit -am 'Añadir nueva funcionalidad')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Crea un Pull Request

📄 Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.

🔗 Enlaces útiles

📧 Contacto


⭐ ¡No olvides dar una estrella al proyecto si te ha sido útil!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_frame-0.1.3.tar.gz (59.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_frame-0.1.3-py3-none-any.whl (76.3 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_frame-0.1.3.tar.gz.

File metadata

  • Download URL: fastapi_frame-0.1.3.tar.gz
  • Upload date:
  • Size: 59.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for fastapi_frame-0.1.3.tar.gz
Algorithm Hash digest
SHA256 5c77f0fe1c8fdf3d27e60e2cf944eead99cf337eba1880fd66d467d5a5937ec5
MD5 26bda267c5f2b10cc26e49129be86f98
BLAKE2b-256 de79d8a6907b4701e25c8a2323d24c6e65e154af3894360d2d05fe5a9f871b44

See more details on using hashes here.

File details

Details for the file fastapi_frame-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: fastapi_frame-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 76.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for fastapi_frame-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a2dc3183af6dbb0f32db747e2da92caea5ce9bd1d676bdc448f80b5c794454a5
MD5 e49df4ae0b72584304df55be52b70c6e
BLAKE2b-256 329ab966e5c35e8ebfb6bdb7cf4397b212e12ad4d0d39a7d9fcc2795a30e9f6e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page