master/adapter/http/fastapi/app.py
2026-03-20 21:38:51 +03:00

18 lines
753 B
Python

from adapter.config.loader import load_config
from adapter.config.model import AppConfig
from adapter.http.fastapi.dependencies import APP_CONFIG_STATE
from adapter.http.fastapi.lifespan import app_lifespan
from adapter.http.fastapi.middleware import register_middleware
from adapter.http.fastapi.routers.v1.router import router as v1_router
from fastapi import FastAPI
API_V1_PREFIX = '/api/v1'
def create_app(config: AppConfig | None = None) -> FastAPI:
app_config = load_config() if config is None else config
app = FastAPI(title=app_config.app.name, lifespan=app_lifespan)
setattr(app.state, APP_CONFIG_STATE, app_config)
register_middleware(app, app_config)
app.include_router(v1_router, prefix=API_V1_PREFIX)
return app