from fastapi import FastAPI | |
from fastapi.middleware.cors import CORSMiddleware | |
from starlette.middleware.base import BaseHTTPMiddleware | |
from app.core.config import CORS_ALLOWED_HEADERS, CORS_ORIGINS | |
from app.core.middlewares.execution_middleware import measure_execution_time | |
def add_middlewares(app: FastAPI) -> None: | |
""" | |
Wrap FastAPI application, with various of middlewares | |
""" | |
app.add_middleware( | |
CORSMiddleware, | |
allow_origins=["*"], # For development only. In production, use specific origins | |
allow_credentials=True, | |
allow_methods=["*"], | |
allow_headers=["*"], | |
) | |
app.add_middleware(BaseHTTPMiddleware, dispatch=measure_execution_time) | |