swagger-doc
我又来了,重开了个issue
默认启动方式下,localhost:9099/docs打不开swagger页面
然后app.py中修改为:
if __name__ == "__main__":
uvicorn.run(
app="server:app",
host=AppConfig.app_host,
port=AppConfig.app_port,
reload=AppConfig.app_reload,
)
server.py中修改为:
初始化FastAPI对象
app = FastAPI(
title=AppConfig.app_name,
description=f"{AppConfig.app_name}接口文档",
root_path=AppConfig.app_root_path,
version=AppConfig.app_version,
lifespan=lifespan,
)
就可正常打开了,这样改是否合理(hhh来自一个前java程序员
这样修改你会发现前端无法正常获取静态文件,这是fastapi目前存在的一个bug,已有相关的pr,待合并后应该就正常了
看到你提的了,https://github.com/tiangolo/fastapi/issues/11622
感觉fastapi的release节奏变慢了,这个好像没下文了
https://github.com/tiangolo/fastapi/discussions/11626
这样修改你会发现前端无法正常获取静态文件,这是fastapi目前存在的一个bug,已有相关的pr,待合并后应该就正常了
在app.py中去掉root_path配置,在server.py中新增配置 docs_url=AppConfig.app_root_path + '/docs',这样就能解决这个问题了
# 初始化FastAPI对象
app = FastAPI(
title=AppConfig.app_name,
description=f'{AppConfig.app_name}接口文档',
docs_url=AppConfig.app_root_path + '/docs',
version=AppConfig.app_version,
lifespan=lifespan,
)
我本地代码运行截图,头像是本地静态文件
这样修改你会发现前端无法正常获取静态文件,这是fastapi目前存在的一个bug,已有相关的pr,待合并后应该就正常了
在app.py中去掉root_path配置,在server.py中新增配置
docs_url=AppConfig.app_root_path + '/docs',这样就能解决这个问题了# 初始化FastAPI对象 app = FastAPI( title=AppConfig.app_name, description=f'{AppConfig.app_name}接口文档', docs_url=AppConfig.app_root_path + '/docs', version=AppConfig.app_version, lifespan=lifespan, )我本地代码运行截图,头像是本地静态文件
这样写前端的系统接口菜单就失效了
这样修改你会发现前端无法正常获取静态文件,这是fastapi目前存在的一个bug,已有相关的pr,待合并后应该就正常了
在app.py中去掉root_path配置,在server.py中新增配置
docs_url=AppConfig.app_root_path + '/docs',这样就能解决这个问题了# 初始化FastAPI对象 app = FastAPI( title=AppConfig.app_name, description=f'{AppConfig.app_name}接口文档', docs_url=AppConfig.app_root_path + '/docs', version=AppConfig.app_version, lifespan=lifespan, )我本地代码运行截图,头像是本地静态文件
这样写前端的系统接口菜单就失效了
这个系统接口菜单是指的哪个呐?我看我本地的前端功能都正常的
这样修改你会发现前端无法正常获取静态文件,这是fastapi目前存在的一个bug,已有相关的pr,待合并后应该就正常了
在app.py中去掉root_path配置,在server.py中新增配置
docs_url=AppConfig.app_root_path + '/docs',这样就能解决这个问题了# 初始化FastAPI对象 app = FastAPI( title=AppConfig.app_name, description=f'{AppConfig.app_name}接口文档', docs_url=AppConfig.app_root_path + '/docs', version=AppConfig.app_version, lifespan=lifespan, )我本地代码运行截图,头像是本地静态文件
这样写前端的系统接口菜单就失效了
明白了,这里指的是 OpenAPI 的接口会失效
这样修改你会发现前端无法正常获取静态文件,这是fastapi目前存在的一个bug,已有相关的pr,待合并后应该就正常了
我再次尝试了一下,backend 修改如 @buptzyf 这个老哥写一样,把root_path=AppConfig.app_root_path 配置从app.py改到server.py来,然后修改 frontend 的 vite 的 proxy 配置,不要 rewrite 配置就行:
proxy: {
// https://cn.vitejs.dev/config/#server-proxy
"/dev-api": {
target: "http://127.0.0.1:9099/",
changeOrigin: true,
// rewrite: (p) => p.replace(/^\/dev-api/, ""),
},
},
这样无论是前端接口及静态资源,又或是openapi文档和接口都能正常访问了
这样修改你会发现前端无法正常获取静态文件,这是fastapi目前存在的一个bug,已有相关的pr,待合并后应该就正常了
我再次尝试了一下,backend 修改如 @buptzyf 这个老哥写一样,把root_path=AppConfig.app_root_path 配置从app.py改到server.py来,然后修改 frontend 的 vite 的 proxy 配置,不要 rewrite 配置就行:
proxy: { // https://cn.vitejs.dev/config/#server-proxy "/dev-api": { target: "http://127.0.0.1:9099/", changeOrigin: true, // rewrite: (p) => p.replace(/^\/dev-api/, ""), }, },这样无论是前端接口及静态资源,又或是openapi文档和接口都能正常访问了
感谢贡献解决方案,但从项目本身来说我还是倾向于保留rewrite依然可以正常使用的写法,对于nginx也是如此。在底层bug未解决之前,我会一直保留这个issue,以给需要的人提供解决方法。
改到FastAPI 没发现任何问题 docs也能打开
