コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
ファイル: handlers.py プロジェクト: Nexters/landlords-server
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)
コード例 #4
0
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
コード例 #5
0
    ],
)

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")