routing

Routing utilities for FastHTML applications

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.

Type Details
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