app.py 905 B

123456789101112131415161718192021222324
  1. from fastapi import FastAPI
  2. from core_shared.observability import add_observability
  3. from core_shared import try_build_redis_client
  4. from core_shared.rate_limit import build_rate_limiter
  5. from app.api.routes import router
  6. from app.bootstrap.settings import ApiGatewaySettings
  7. from app.db.session import build_session_factory
  8. from app.infrastructure.request_context import GatewayRequestContextMiddleware
  9. def create_app() -> FastAPI:
  10. settings = ApiGatewaySettings()
  11. app = FastAPI(
  12. title="agent-platform api-gateway",
  13. version="0.1.0",
  14. )
  15. app.state.settings = settings
  16. app.state.session_factory = build_session_factory(settings)
  17. app.state.rate_limiter = build_rate_limiter(try_build_redis_client(settings.redis_url))
  18. add_observability(app, settings.service_name)
  19. app.add_middleware(GatewayRequestContextMiddleware)
  20. app.include_router(router)
  21. return app