fastapi swagger 文档的嵌套展示
想要在 swagger 文档中展示嵌套结构,例如后台管理下包含用户管理和文章管理,用户管理下包含 a 接口和 b 接口,文章管理下包含 c 接口和 d 接口。
当前效果:
-
后台管理
- a 接口
- b 接口
- c 接口
- d 接口
-
用户管理
- a 接口
- b 接口
-
文章管理
- c 接口
- d 接口
期望效果:
-
后台管理
-
用户管理
- a 接口
- b 接口
-
文章管理
- c 接口
- d 接口
-
代码:
routerAdmin = APIRouter( prefix='/admin', tags=['后台管理'] ) # routerUser 包含 a, b 接口 routerAdmin.include_router(routerUser, prefix='/user') # routerArticle 包含 c, d 接口 routerAdmin.include_router(routerArticle, prefix='/article') app = fastapi() app.include_router(routerAdmin)
实现:
目前 openapi 规范不支持嵌套结构。因此,无法使用 fastapi 的内置 swagger ui 来实现上述嵌套展示效果。
然而,可以通过使用第三方插件来实现嵌套展示。例如,fastapi-swaggerui-template 插件可以提供自定义 swagger ui 模版,并支持嵌套结构的展示。
但是,需要注意的是,第三方插件的使用可能会引入额外的依赖关系和复杂性,需要谨慎选择。