deploy / app /main.py
Sharooq Ayaz
adding
26406d1
Raw
History Blame Contribute Delete
1.18 kB
"""
FastAPI application entry point.
Configures middleware, CORS, and routes.
"""
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.core.config import settings
from app.core.database import create_db_tables
from app.middleware.jwt_middleware import verify_jwt_token
from app.api.routes import auth, todos
@asynccontextmanager
async def lifespan(app: FastAPI):
"""Create database tables on startup."""
create_db_tables()
yield
# Create FastAPI application
app = FastAPI(
title=settings.APP_NAME,
debug=settings.DEBUG,
version="1.0.0",
lifespan=lifespan,
)
# Configure CORS
app.add_middleware(
CORSMiddleware,
allow_origins=settings.CORS_ORIGINS,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Register JWT verification middleware
app.middleware("http")(verify_jwt_token)
# Health check endpoint
@app.get("/health")
async def health_check():
"""Health check endpoint."""
return {"status": "healthy"}
# Include routers
app.include_router(auth.router, prefix="/api")
app.include_router(todos.router, prefix="/api")