Route Registration Helper
Helper function to register multiple routers at once, reducing boilerplate.
source
register_routes
register_routes (app, *routers)
Register multiple APIRouter instances to a FastHTML app at once.
| app |
|
FastHTML app instance |
| routers |
VAR_POSITIONAL |
One or more APIRouter instances to register |
| Returns |
None |
No return value |
Example Usage
# Mock FastHTML app and routers for testing
class MockRouter:
def __init__(self, prefix):
self.prefix = prefix
self.registered = False
def to_app(self, app):
self.registered = True
app.routers.append(self)
class MockApp:
def __init__(self):
self.routers = []
# Create mock app and routers
app = MockApp()
main_router = MockRouter("/")
settings_router = MockRouter("/settings")
api_router = MockRouter("/api")
# Register all at once
register_routes(app, main_router, settings_router, api_router)
# Verify all registered
print(f"Number of routers registered: {len(app.routers)}")
for router in app.routers:
print(f" - {router.prefix}: registered={router.registered}")
Number of routers registered: 3
- /: registered=True
- /settings: registered=True
- /api: registered=True
Benefits
This simple helper provides:
- Reduced boilerplate: One line instead of N lines for N routers
- Clear intent: Explicitly shows “these are all the routes for this app”
- Easier maintenance: Add/remove routers in one place
- Less error-prone: Can’t accidentally forget to register a router