Files
merica/backend/app/routers/__init__.py
T

85 lines
3.3 KiB
Python
Raw Normal View History

from fastapi import APIRouter, status, UploadFile, File
from app.routers.connections import router as connections_router
from app.routers.trino import router as trino_router
from app.routers.docs import router as docs_router
from app.routers.storage import router as storage_router, upload_file
from app.routers.pipelines import (
router as pipelines_router,
create_draft,
deploy_pipeline,
publish_version,
)
from app.routers.sitomat import router as sitomat_router
from app.routers.governance import router as governance_router
from app.routers.alerts import router as alerts_router
from app.routers.auth import router as auth_router
from app.routers.settings import router as settings_router
from app.routers.gws import router as gws_router
from app.routers.dbt import router as dbt_router
from app.routers.dlt import router as dlt_router
from app.schemas.pipeline import DraftRequest, DeployRequest, PublishVersionRequest
# ==========================================
# RESTful API v1 Router
# ==========================================
api_v1_router = APIRouter(prefix="/api/v1")
api_v1_router.include_router(pipelines_router)
api_v1_router.include_router(connections_router)
api_v1_router.include_router(gws_router)
api_v1_router.include_router(dbt_router)
api_v1_router.include_router(dlt_router)
api_v1_router.include_router(trino_router)
api_v1_router.include_router(docs_router)
api_v1_router.include_router(storage_router)
api_v1_router.include_router(sitomat_router)
api_v1_router.include_router(governance_router)
api_v1_router.include_router(alerts_router)
api_v1_router.include_router(auth_router)
api_v1_router.include_router(settings_router)
# ==========================================
# Backward-Compatibility Router for React Canvas
# (Legacy endpoints at /api/*, hidden from OpenAPI docs to prevent duplicate clutter)
# ==========================================
legacy_router = APIRouter(prefix="/api", include_in_schema=False)
legacy_router.include_router(connections_router)
legacy_router.include_router(gws_router)
legacy_router.include_router(dbt_router)
legacy_router.include_router(dlt_router)
legacy_router.include_router(trino_router)
legacy_router.include_router(docs_router)
legacy_router.include_router(pipelines_router)
legacy_router.include_router(sitomat_router)
legacy_router.include_router(governance_router)
legacy_router.include_router(auth_router)
legacy_router.include_router(settings_router)
# Legacy aliases matching exact routes expected by StudioPage & InspectorPanel
@legacy_router.post("/save-draft", status_code=status.HTTP_201_CREATED)
def legacy_save_draft(req: DraftRequest):
return create_draft(req)
@legacy_router.post("/deploy-dag", status_code=status.HTTP_201_CREATED)
def legacy_deploy_dag(req: DeployRequest):
return deploy_pipeline(req)
@legacy_router.post("/publish-version", status_code=status.HTTP_201_CREATED)
def legacy_publish_version(req: PublishVersionRequest):
return publish_version(req)
@legacy_router.post("/upload-file")
async def legacy_upload_file(file: UploadFile = File(...)):
return await upload_file(file)
__all__ = [
"api_v1_router",
"legacy_router",
"connections_router",
"trino_router",
"docs_router",
"storage_router",
"pipelines_router",
"sitomat_router",
"governance_router",
]