FastAPI - 挂载一个子应用程序

如果您有两个独立的 FastAPI 应用程序,其中一个可以挂载安装在另一个之上。 挂载的那个称为子应用程序。 app.mount() 方法在主应用程序的特定路径中添加另一个完全"独立"的应用程序。 然后它负责处理该路径下的所有内容,并使用该子应用程序中声明的路径操作。

让我们首先声明一个简单的 FastAPI 应用程序对象,用作顶级应用程序。

from fastapi import FastAPI
app = FastAPI()
@app.get("/app")
def mainindex():
   return {"message": "Hello World from Top level app"}

然后再创建一个应用对象subapp,加入自己的路径操作。

subapp = FastAPI()
@subapp.get("/sub")
def subindex():
   return {"message": "Hello World from sub app"}

使用 mount() 方法在主应用程序上安装此子应用程序对象。 需要的两个参数是 URL 路由和子应用程序的名称。

app.mount("/subapp", subapp)

主应用和子应用都有自己的文档,可以使用 Swagger UI 检查。

FastAPI 挂载子应用

子应用程序的文档在 http://localhost:8000/subapp/docs 可用

FastAPI 挂载子应用