FastAPI framework template structure without dependencies - use as a starting point for FastAPI projects
Project description
FastAPI Frame
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:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -am 'Añadir nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Crea un Pull Request
📄 Licencia
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
🔗 Enlaces útiles
📧 Contacto
- Autor: Tu Nombre
- Email: tu.email@example.com
- GitHub: @tu-usuario
⭐ ¡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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastapi_frame-0.1.4.tar.gz.
File metadata
- Download URL: fastapi_frame-0.1.4.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
308f5c6e14a77b944749418ef2245940c4c61f578b08e36c6a268b1ccdea95c7
|
|
| MD5 |
93ab4bd7268d67e8fad26f0a1231455e
|
|
| BLAKE2b-256 |
8390c8dc58d753c8dc66d8d10910d0efe1e304d130e1a862bdfe9c46b9f237d1
|
File details
Details for the file fastapi_frame-0.1.4-py3-none-any.whl.
File metadata
- Download URL: fastapi_frame-0.1.4-py3-none-any.whl
- Upload date:
- Size: 77.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfe947a378e262f14b264acdc982af9d9cd3c996d3dc810a710b3f5b0e59d6df
|
|
| MD5 |
3804255ff4a709567e5bb25c48f3f313
|
|
| BLAKE2b-256 |
f6cad1263fcd1247588015b3b585774d6ab4c8798b047acaf4df211363fc9b87
|