Movatterモバイル変換


[0]ホーム

URL:


Skip to content
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

Sub Applications - Mounts

If you need to have two independent FastAPI applications, with their own independent OpenAPI and their own docs UIs, you can have a main app and "mount" one (or more) sub-application(s).

Mounting aFastAPI application

"Mounting" means adding a completely "independent" application in a specific path, that then takes care of handling everything under that path, with thepath operations declared in that sub-application.

Top-level application

First, create the main, top-level,FastAPI application, and itspath operations:

fromfastapiimportFastAPIapp=FastAPI()@app.get("/app")defread_main():return{"message":"Hello World from main app"}subapi=FastAPI()@subapi.get("/sub")defread_sub():return{"message":"Hello World from sub API"}app.mount("/subapi",subapi)

Sub-application

Then, create your sub-application, and itspath operations.

This sub-application is just another standard FastAPI application, but this is the one that will be "mounted":

fromfastapiimportFastAPIapp=FastAPI()@app.get("/app")defread_main():return{"message":"Hello World from main app"}subapi=FastAPI()@subapi.get("/sub")defread_sub():return{"message":"Hello World from sub API"}app.mount("/subapi",subapi)

Mount the sub-application

In your top-level application,app, mount the sub-application,subapi.

In this case, it will be mounted at the path/subapi:

fromfastapiimportFastAPIapp=FastAPI()@app.get("/app")defread_main():return{"message":"Hello World from main app"}subapi=FastAPI()@subapi.get("/sub")defread_sub():return{"message":"Hello World from sub API"}app.mount("/subapi",subapi)

Check the automatic API docs

Now, run thefastapi command with your file:

$fastapidevmain.py<span style="color: green;">INFO</span>:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

And open the docs athttp://127.0.0.1:8000/docs.

You will see the automatic API docs for the main app, including only its ownpath operations:

And then, open the docs for the sub-application, athttp://127.0.0.1:8000/subapi/docs.

You will see the automatic API docs for the sub-application, including only its ownpath operations, all under the correct sub-path prefix/subapi:

If you try interacting with any of the two user interfaces, they will work correctly, because the browser will be able to talk to each specific app or sub-app.

Technical Details:root_path

When you mount a sub-application as described above, FastAPI will take care of communicating the mount path for the sub-application using a mechanism from the ASGI specification called aroot_path.

That way, the sub-application will know to use that path prefix for the docs UI.

And the sub-application could also have its own mounted sub-applications and everything would work correctly, because FastAPI handles all theseroot_paths automatically.

You will learn more about theroot_path and how to use it explicitly in the section aboutBehind a Proxy.


[8]ページ先頭

©2009-2026 Movatter.jp