You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

35 lines
892 B

import uvicorn
from fastapi import FastAPI, HTTPException
from fastapi.responses import ORJSONResponse
from core.settings import settings
from api.main_router import router as main_router
from api.another_router import router as another_router
from core.models import db_helper
from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(app: FastAPI):
#start up
yield
#shutdown
await db_helper.dispose()
main_app = FastAPI(
lifespan=lifespan,
default_response_class=ORJSONResponse
)
#api/hello
main_app.include_router(
router=main_router,
prefix="/api",
tags=["Основной роутер"]
)
main_app.include_router(
router=another_router,
prefix="/another",
tags=["Побочный роутер"]
)
if __name__ == "__main__":
uvicorn.run(main_app, host=settings.run.host, port=settings.run.port)