presentation.routers.api.v1.routes.generator¶
src.presentation.routers.api.v1.routes.generator
¶
Route generator for the API Route Registry.
This module provides register_routes_from_registry(), which generates FastAPI routes from RouteMetadata entries at application startup. It's the core of the Registry Pattern, converting declarative metadata into runtime routes.
Functions:
| Name | Description |
|---|---|
register_routes_from_registry |
Generate all routes from registry |
_build_dependencies |
Build FastAPI dependencies from auth policy |
_build_responses |
Build OpenAPI responses dict from error specs |
Usage
from src.presentation.routers.api.v1.routes.registry import ROUTE_REGISTRY from src.presentation.routers.api.v1.routes.generator import register_routes_from_registry
v1_router = APIRouter(prefix="/api/v1") register_routes_from_registry(v1_router, ROUTE_REGISTRY)
Reference
- docs/architecture/registry-pattern-architecture.md
Classes¶
Functions¶
register_routes_from_registry
¶
Generate FastAPI routes from registry metadata.
This function converts declarative RouteMetadata entries into runtime FastAPI routes using router.add_api_route(). It handles: - HTTP method and path - Handler function reference - Request/response models - Status codes - OpenAPI documentation (summary, description, operation_id) - Error responses - Auth dependencies (based on auth_policy)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
router
|
APIRouter
|
FastAPI APIRouter to register routes on |
required |
registry
|
list[RouteMetadata]
|
List of RouteMetadata entries to convert into routes |
required |
Example
from fastapi import APIRouter from src.presentation.routers.api.v1.routes.registry import ROUTE_REGISTRY
v1_router = APIRouter(prefix="/api/v1") register_routes_from_registry(v1_router, ROUTE_REGISTRY)
Now v1_router has 36 routes registered¶
Reference
- docs/architecture/registry-pattern-architecture.md