feat: implement async lifespan for FastAPI and remove startup event
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from contextlib import asynccontextmanager
|
||||||
|
|
||||||
from fastapi import APIRouter, FastAPI
|
from fastapi import APIRouter, FastAPI
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
|
|
||||||
@@ -22,7 +24,14 @@ from app.db.session import init_db
|
|||||||
|
|
||||||
configure_logging()
|
configure_logging()
|
||||||
|
|
||||||
app = FastAPI(title="Mission Control API", version="0.1.0")
|
|
||||||
|
@asynccontextmanager
|
||||||
|
async def lifespan(_: FastAPI):
|
||||||
|
init_db()
|
||||||
|
yield
|
||||||
|
|
||||||
|
|
||||||
|
app = FastAPI(title="Mission Control API", version="0.1.0", lifespan=lifespan)
|
||||||
|
|
||||||
origins = [o.strip() for o in settings.cors_origins.split(",") if o.strip()]
|
origins = [o.strip() for o in settings.cors_origins.split(",") if o.strip()]
|
||||||
if origins:
|
if origins:
|
||||||
@@ -35,11 +44,6 @@ if origins:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.on_event("startup")
|
|
||||||
def on_startup() -> None:
|
|
||||||
init_db()
|
|
||||||
|
|
||||||
|
|
||||||
@app.get("/health")
|
@app.get("/health")
|
||||||
def health() -> dict[str, bool]:
|
def health() -> dict[str, bool]:
|
||||||
return {"ok": True}
|
return {"ok": True}
|
||||||
|
|||||||
@@ -47,3 +47,6 @@ warn_redundant_casts = true
|
|||||||
warn_unused_configs = true
|
warn_unused_configs = true
|
||||||
check_untyped_defs = true
|
check_untyped_defs = true
|
||||||
plugins = ["pydantic.mypy"]
|
plugins = ["pydantic.mypy"]
|
||||||
|
|
||||||
|
[tool.pytest.ini_options]
|
||||||
|
asyncio_default_fixture_loop_scope = "function"
|
||||||
|
|||||||
Reference in New Issue
Block a user