guideCity/backend/app/main.py

29 lines
1,002 B
Python
Raw Normal View History

import logging
from collections.abc import AsyncIterator
from contextlib import asynccontextmanager
from fastapi import FastAPI
from app.api.routes import cities, health, nearby, places
from app.config import settings
from app.core.logging import configure_logging, log_requests
configure_logging(level=getattr(logging, settings.log_level.upper(), logging.INFO))
logger = logging.getLogger("guidecity")
@asynccontextmanager
async def lifespan(_app: FastAPI) -> AsyncIterator[None]:
logger.info("guideCity API startup complete (log_level=%s)", settings.log_level)
yield
logger.info("guideCity API shutting down")
app = FastAPI(title="guideCity API", version="0.1.0", lifespan=lifespan)
app.middleware("http")(log_requests)
app.include_router(health.router, prefix=settings.api_v1_prefix)
app.include_router(cities.router, prefix=settings.api_v1_prefix)
app.include_router(places.router, prefix=settings.api_v1_prefix)
app.include_router(nearby.router, prefix=settings.api_v1_prefix)