|
11 | 11 |
|
12 | 12 | from fastapi import APIRouter |
13 | 13 |
|
14 | | -router = APIRouter() |
| 14 | +_router: APIRouter | None = None |
| 15 | + |
| 16 | + |
| 17 | +def _build_router() -> APIRouter: |
| 18 | + router = APIRouter() |
| 19 | + |
| 20 | + from api.routes.analyze import router as analyze_router |
| 21 | + from api.routes.causal import router as causal_router |
| 22 | + from api.routes.correlation import router as correlation_router |
| 23 | + from api.routes.events import router as events_router |
| 24 | + from api.routes.forecast import router as forecast_router |
| 25 | + from api.routes.health import router as health_router |
| 26 | + from api.routes.jobs import router as jobs_router |
| 27 | + from api.routes.logs import router as logs_router |
| 28 | + from api.routes.metrics import router as metrics_router |
| 29 | + from api.routes.ml import router as ml_router |
| 30 | + from api.routes.slo import router as slo_router |
| 31 | + from api.routes.topology import router as topology_router |
| 32 | + from api.routes.traces import router as traces_router |
| 33 | + |
| 34 | + router.include_router(health_router) |
| 35 | + router.include_router(analyze_router) |
| 36 | + router.include_router(metrics_router) |
| 37 | + router.include_router(logs_router) |
| 38 | + router.include_router(traces_router) |
| 39 | + router.include_router(correlation_router) |
| 40 | + router.include_router(slo_router) |
| 41 | + router.include_router(topology_router) |
| 42 | + router.include_router(events_router) |
| 43 | + router.include_router(forecast_router) |
| 44 | + router.include_router(causal_router) |
| 45 | + router.include_router(ml_router) |
| 46 | + router.include_router(jobs_router) |
| 47 | + |
| 48 | + return router |
| 49 | + |
| 50 | + |
| 51 | +def __getattr__(name: str) -> APIRouter: |
| 52 | + if name != "router": |
| 53 | + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") |
| 54 | + |
| 55 | + global _router |
| 56 | + if _router is None: |
| 57 | + _router = _build_router() |
| 58 | + globals()["router"] = _router |
| 59 | + return _router |
15 | 60 |
|
16 | 61 | __all__ = ["router"] |
0 commit comments