def fastapi_app(database, db_uri): app = FastAPI( title="orchestrator", openapi_url="/openapi/openapi.yaml", docs_url="/api/docs", redoc_url="/api/redoc", default_response_class=JSONResponse, ) app.include_router(api_router, prefix="/api") app.add_middleware(SessionMiddleware, secret_key=app_settings.SESSION_SECRET) app.add_middleware(DBSessionMiddleware, database=db) origins = app_settings.CORS_ORIGINS.split(",") app.add_middleware( CORSMiddleware, allow_origins=origins, allow_methods=app_settings.CORS_ALLOW_METHODS, allow_headers=app_settings.CORS_ALLOW_HEADERS, expose_headers=app_settings.CORS_EXPOSE_HEADERS, ) app.add_exception_handler(FormException, form_error_handler) app.add_exception_handler(ProblemDetailException, problem_detail_handler) return app
def create_app() -> FastAPI: """ app factory method """ app = FastAPI() # TODO: configuration app.add_exception_handler(RequestValidationError, handler=validation_exception_handler) app.add_exception_handler(HTTPException, handler=http_exception_handler) return app
def set_exception_handlers(app: FastAPI) -> None: app.add_exception_handler( ValidationError, handler=validation_exception_handler ) app.add_exception_handler( RequestValidationError, handler=validation_exception_handler ) app.add_exception_handler( SQLAlchemyError, handler=database_exception_handler ) app.add_exception_handler( RepositoryException, handler=database_exception_handler ) app.add_exception_handler(HTTPException, handler=http_exception_handler) app.add_exception_handler(AuthlibBaseError, handler=auth_exception_handler)
def create_app(title: str) -> FastAPI: """ app factory method """ app = FastAPI(title=title) app.add_exception_handler( ValidationError, handler=validation_exception_handler ) app.add_exception_handler( RequestValidationError, handler=validation_exception_handler ) app.add_exception_handler( SQLAlchemyError, handler=database_exception_handler ) app.add_exception_handler( RepositoryException, handler=database_exception_handler ) app.add_exception_handler(HTTPException, handler=http_exception_handler) app.add_exception_handler(AuthlibBaseError, handler=auth_exception_handler) return app
], ) app.include_router(api_router, prefix="/api") app.add_middleware(SessionMiddleware, secret_key=app_settings.SESSION_SECRET) app.add_middleware(DBSessionMiddleware, database=db) origins = app_settings.CORS_ORIGINS.split(",") app.add_middleware( CORSMiddleware, allow_origins=origins, allow_methods=app_settings.CORS_ALLOW_METHODS, allow_headers=app_settings.CORS_ALLOW_HEADERS, expose_headers=app_settings.CORS_EXPOSE_HEADERS, ) app.add_exception_handler(FormException, form_error_handler) app.add_exception_handler(ProblemDetailException, problem_detail_handler) @app.router.get("/", response_model=str, response_class=JSONResponse, include_in_schema=False) def index() -> str: return "FastAPI boilerplate backend root" logger.info("App is running") handler = Mangum(app, lifespan="off")