import logging.config from http.client import HTTPException from fastapi.responses import JSONResponse from fastapi import FastAPI, HTTPException, Request import uvicorn from fastapi import FastAPI from app.api.api_route import router from app.core.config import settings from app.schemas.response_template import ResponseModel from logging_env import LOGGER_CONFIG_DICT logging.config.dictConfig(LOGGER_CONFIG_DICT) logging.getLogger("pika").setLevel(logging.WARNING) from starlette.middleware.cors import CORSMiddleware def get_application() -> FastAPI: application = FastAPI( title=settings.PROJECT_NAME, docs_url="/docs", redoc_url='/re-docs', openapi_url=f"{settings.API_PREFIX}/openapi.json", description=''' Base frame with FastAPI - Super Resolution API ''' ) application.add_middleware( CORSMiddleware, allow_origins=[str(origin) for origin in settings.BACKEND_CORS_ORIGINS], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) application.include_router(router=router, prefix=settings.API_PREFIX) return application app = get_application() @app.exception_handler(HTTPException) async def http_exception_handler(request: Request, exc: HTTPException): return JSONResponse( status_code=exc.status_code, content=ResponseModel(code=exc.status_code, msg=exc.detail, data=exc.detail).dict() ) if __name__ == '__main__': uvicorn.run(app, host="0.0.0.0", port=8000)