Skip to content

pixano_inference.api.v1.router

Assemble and mount the /v1 API onto a FastAPI app.

register_v1_api(app, deployment_manager, auth_dependency=None)

Mount the /v1 API on app.

Health/readiness/info are unauthenticated (probes); inference, jobs, and admin routes require the API key when one is configured. A top-level /health alias is also mounted for container health checks.

Parameters:

Name Type Description Default
app FastAPI

FastAPI application.

required
deployment_manager DeploymentManager

The deployment manager instance.

required
auth_dependency Any | None

Optional auth dependency applied to the guarded routers.

None
Source code in pixano_inference/api/v1/router.py
def register_v1_api(app: FastAPI, deployment_manager: DeploymentManager, auth_dependency: Any | None = None) -> None:
    """Mount the /v1 API on *app*.

    Health/readiness/info are unauthenticated (probes); inference, jobs, and admin routes
    require the API key when one is configured. A top-level ``/health`` alias is also mounted
    for container health checks.

    Args:
        app: FastAPI application.
        deployment_manager: The deployment manager instance.
        auth_dependency: Optional auth dependency applied to the guarded routers.
    """
    guarded = [Depends(auth_dependency)] if auth_dependency is not None else []

    service_router = build_service_router(deployment_manager)
    app.include_router(service_router, prefix="/v1")
    # Unversioned aliases for container health checks / load balancers.
    app.include_router(build_service_router(deployment_manager))

    app.include_router(build_inference_router(deployment_manager), prefix="/v1", dependencies=guarded)
    app.include_router(build_jobs_router(deployment_manager), prefix="/v1", dependencies=guarded)
    app.include_router(build_admin_router(deployment_manager), prefix="/v1", dependencies=guarded)