coder16
update
57090be
Raw
History Blame Contribute Delete
1.39 kB
"""Fábrica de la aplicación FastAPI."""
from __future__ import annotations
from fastapi import FastAPI
from app.core.config import settings
from app.core.exception_handlers import register_exception_handlers
from app.core.lifespan import lifespan
from app.core.middleware import setup_middlewares
from app.rutas import api_router
def create_app() -> FastAPI:
"""Crea y configura la instancia de FastAPI."""
app = FastAPI(
title=settings.APP_NAME,
version=settings.APP_VERSION,
description=settings.APP_DESCRIPTION,
debug=settings.DEBUG,
lifespan=lifespan,
)
setup_middlewares(app)
register_exception_handlers(app)
app.include_router(api_router, prefix=settings.API_PREFIX)
@app.get("/health", tags=["Salud"], summary="Estado del servicio")
async def health() -> dict[str, str]:
"""Liveness: responde siempre y rápido (no depende de la base de datos)."""
return {"status": "ok"}
@app.get(
"/health/db",
tags=["Salud"],
summary="Estado de la conexión a MongoDB",
)
async def health_db() -> dict[str, str]:
"""Readiness: comprueba si MongoDB responde en este momento."""
from app.database.mongodb import mongodb
conectado = await mongodb.ping()
return {"database": "connected" if conectado else "disconnected"}
return app