app.py 899 B

1234567891011121314151617181920212223
  1. from core_shared import try_build_redis_client
  2. from core_shared.observability import add_observability
  3. from core_shared.rate_limit import build_rate_limiter
  4. from fastapi import FastAPI
  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. app.state.settings = settings
  15. app.state.session_factory = build_session_factory(settings)
  16. app.state.rate_limiter = build_rate_limiter(try_build_redis_client(settings.redis_url))
  17. add_observability(app, settings.service_name)
  18. app.add_middleware(GatewayRequestContextMiddleware)
  19. app.include_router(router)
  20. return app