| 1234567891011121314151617181920212223 |
- from core_shared import try_build_redis_client
- from core_shared.observability import add_observability
- from core_shared.rate_limit import build_rate_limiter
- from fastapi import FastAPI
- from app.api.routes import router
- from app.bootstrap.settings import ApiGatewaySettings
- from app.db.session import build_session_factory
- from app.infrastructure.request_context import GatewayRequestContextMiddleware
- def create_app() -> FastAPI:
- settings = ApiGatewaySettings()
- app = FastAPI(
- title="agent-platform api-gateway",
- version="0.1.0")
- app.state.settings = settings
- app.state.session_factory = build_session_factory(settings)
- app.state.rate_limiter = build_rate_limiter(try_build_redis_client(settings.redis_url))
- add_observability(app, settings.service_name)
- app.add_middleware(GatewayRequestContextMiddleware)
- app.include_router(router)
- return app
|