-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Discussed in #8682
Example Code
from fastapi import FastAPI, APIRouter
from starlette.testclient import TestClient
app = FastAPI()
api_router = APIRouter(prefix="/api")
@api_router.get("/app")
def read_main():
return {"message": "Hello World from main app"}
app.include_router(api_router)
subapi = FastAPI()
@subapi.get("/sub")
def read_sub():
return {"message": "Hello World from sub API"}
api_router.mount("/subapi", subapi)
client = TestClient(app)
assert client.get('/api/app').status_code == 200
# this next assert fails
assert client.get('/api/subapi/sub').status_code == 200Description
Is it possible to mount a sub-application under an APIRouter? APIRouter itself has a mount function and accepts similar arguments to mounting a sub-application on a FastAPI instance, but I can't get the routing to actually work (nor can i get the openapi docs or spec to come back from that I would assume are the correct URLs.
The docs for sub applications note that the sub-application will have it's root_path correctly set, and I've tried a few combinations of manually setting the root_path on the subapi instance, but to no avail.
Related
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working