Files
onion-arch/app/presentation/main.py
2026-01-30 16:34:56 +03:00

29 lines
900 B
Python

from __future__ import annotations
from fastapi import FastAPI
from app.infrastructure.db.sqlalchemy.models import Base
from app.infrastructure.db.sqlalchemy.session import get_engine
from app.presentation.api.v1.health import router as health_router
from app.presentation.api.v1.users import router as users_router
def create_app() -> FastAPI:
app = FastAPI(title="DDD Onion FastAPI Demo", version="1.0.0")
app.include_router(health_router)
app.include_router(users_router)
@app.on_event("startup")
async def on_startup() -> None:
# демо-миграция: создать таблицы при старте
# в проде делай Alembic, но файл models.py уже готов.
engine = get_engine()
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
return app
app = create_app()