Skip to content

Sub Applications — Mounts

Split your application into multiple files:

routers/users.py
from justapi import APIRouter
router = APIRouter(prefix="/users", tags=["users"])
@router.get("/")
def list_users():
return []
@router.get("/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id}
main.py
from justapi import JustAPIApp
from routers.users import router as users_router
app = JustAPIApp()
app.include_router(users_router)
app.include_router(users_router, prefix="/api/v1", tags=["users"])

All routes in users_router now start with /api/v1/users/.

Mount an entire ASGI app at a sub-path:

from justapi import JustAPIApp
from starlette.applications import Starlette
app = JustAPIApp()
sub_app = Starlette()
app.mount("/api/v2", sub_app)