first commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from pathlib import Path
|
||||
import sys; sys.path.extend([str(Path(__file__).parent / 'utils' / 'some_sdk')])
|
||||
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from fastapi import FastAPI
|
||||
from tortoise import Tortoise
|
||||
|
||||
from app.core.exceptions import SettingNotFound
|
||||
from app.core.init_app import (
|
||||
init_data,
|
||||
tear_down,
|
||||
make_middlewares,
|
||||
register_exceptions,
|
||||
register_routers,
|
||||
mount_static_and_config_swagger
|
||||
)
|
||||
|
||||
try:
|
||||
from app.settings.config import settings
|
||||
except ImportError:
|
||||
raise SettingNotFound("Can not import settings")
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
await init_data()
|
||||
yield
|
||||
await Tortoise.close_connections()
|
||||
await tear_down()
|
||||
|
||||
|
||||
def create_app() -> FastAPI:
|
||||
app = FastAPI(
|
||||
title=settings.APP_TITLE,
|
||||
description=settings.APP_DESCRIPTION,
|
||||
version=settings.VERSION,
|
||||
openapi_url="/api/openapi.json",
|
||||
docs_url="/api/api-docs",
|
||||
middleware=make_middlewares(),
|
||||
lifespan=lifespan,
|
||||
)
|
||||
register_exceptions(app)
|
||||
register_routers(app, prefix="/api")
|
||||
mount_static_and_config_swagger(app)
|
||||
return app
|
||||
|
||||
|
||||
app = create_app()
|
||||
Reference in New Issue
Block a user