for my basic基本fastapi应用
from ...
from fastapi.routing import APIRoute, Mount
routes = [
APIRoute("/", methods=["get"], endpoint=read_root),
Mount('/square', name='square', routes=[
APIRoute("/{value}", methods=["get"], endpoint=read_item)
])
]
app = FastAPI(routes=routes)
if __name__ == "__main__":
uvicorn.run("main:app", host="0.0.0.0", port=9999)
我在自动生成的swagger中看不到Mount
,根/
是可见的,可以工作,但不是/square
,为什么?
1条答案
按热度按时间xtupzzrd1#
这可能是因为FastAPI生成的OpenAPI模式只包含定义了端点函数的路由。在您的示例中,
read_item
端点函数是为/square/{value}
路由定义的,而不是为/square
路由本身定义的。要使
/square
路由在Swagger UI中可见,您可以为其定义一个单独的端点函数,即使它只是返回一个简单的消息或重定向到另一个页面。例如:然后,当你运行你的应用程序并导航到Swagger UI时,你应该看到
/
和/square
路由都列在“路径”下。