swagger展示目标效果
后台管理
用户管理
文章管理
现在效果
后台管理
用户管理
文章管理
代码
routerAdmin = APIRouter( prefix='/admin', tags=['后台管理'])# routerUser文件a,b路由routerAdmin.include_router(routerUser)# routerAdmin文件c,d路由routerAdmin.include_router(routerArticle)
app = FastAPI()app.include_router(routerAdmin)
问: 可以实现目标效果吗,如何实现.
FastAPI 集成的swagger不支持嵌套。
不过你可以通过其他工具来实现,之前我用过redoc(https://github.com/Redocly/redoc)来生成API 的文档
可以支持切换swagger,可导出OpenAPI标准格式的文档
目前 OpenAPI 规范不支持嵌套。
2017 年有这个 issue 请求。据开发人员说会实现这个功能,但是目前已经 2023 年了,依然没动静。
貌似有个 插件 能实现:标题1|标题2|标题3。
参考自:stackoverflow。
可以,您可以通过自定义 Swagger/OpenAPI 文档的生成来实现目标效果。
FastAPI 使用 fastapi_openapi
包来生成 OpenAPI 文档,您可以通过自定义该包来达到目标效果。
首先,您需要安装 fastapi_openapi3
包,而不是默认的 fastapi_openapi
。这可以通过以下命令完成:
pip install fastapi_openapi3
然后,您需要创建一个新的文件,例如 openapi.yaml
,并定义您的 OpenAPI 文档。这将需要包括您想要显示的自定义标签和路由。然后,您可以创建一个 TagObject
对象,该对象将用于定义标签。在您的 TagObject
中,您可以添加一个 children
属性,该属性将包含您的子标签和路由。
例如:
from fastapi import FastAPI, Depends, HTTPException, status, Tag, Security, Formfrom fastapi_openapi import FastAPIOpenAPIfrom fastapi_openapi.auto_tag import AutoTagapp = FastAPI()openapi = FastAPIOpenAPI(title="Your App", version="0.1.0", openapi_version="3.0.2")openapi.add_tag(name="后台管理", description="后台管理相关接口", children=[ AutoTag(name="用户管理", description="用户管理相关接口", children=[ routerUser, # 注意:这里应该是你的用户管理路由 ]), AutoTag(name="文章管理", description="文章管理相关接口", children=[ routerArticle, # 注意:这里应该是你的文章管理路由 ]),])
最后,您需要在您的应用中包含 openapi
:
app.include_router(openapi)
然后,您的 Swagger/OpenAPI 文档应该显示您期望的嵌套标签和路由。注意,上述代码只是一个基本的例子,您可能需要根据自己的路由设置进行一些调整。
我想将图像添加到FastAPI自动留档(由Swagger UI提供),但我不知道如何做到这一点。这是代码: 正如您从代码中看到的那样,我正在尝试使用 URL 执行此操作,我在 ReDoc 和 Swagger UI 中得到的只是作为文本的 URL,而不是实际图像。另外,我想使用存储在本地驱动器中的图像。 我如何才能做到这一点? 先谢谢你。
默认只有 200 和 422 如果我还想一起声明 200、201、401、404、500 等等多个状态码怎么写?
我们有个人课。Person类具有类型为PersonDetail的属性。Persondeail有一个类型为Mail类的属性。 当我们启动应用程序并导航到swagger ui html页面时,邮件类不会在openapi定义的组件部分生成,我们会在页面上出现“无法解析引用:无法解析指针:文档中不存在 /components/schemas/Mail”错误。正如我们检查的,如果有一个复杂的类型在第三级,时
多亏了这里的人的帮助,我成功地在我的文档中找到了两个ID,并在另一个集合中找到了他们的代表文档。我需要采取的下一步是进一步查找一个“嵌套”ID(引用另一个集合中的文档)。 其结果如下: 我希望chieftain部分是这样的(这就是没有添加'last'$lookup'的chieftain文档的样子):
将mongodb与pymongo一起使用,我有以下文档: 我想更新示例子文档(这是一个数组元素,因为可能有多个示例)。我有以下代码,但它不工作... 谁能告诉我这个有什么问题吗?
我有我的API文件与大摇大摆。为了方便开发人员,我想在我的网站上提供的招摇过市的图形用户界面以及。但是,我的提供商尚未安装php yaml扩展。这意味着我不能在自己的网站上使用GUI。 所以,我想使用第三方GUI。我知道我可以使用https://petstore.swagger.io/,并在文本框中输入到我的yaml文件的链接。这也不是真正的用户友好。我更喜欢在调用url时打开GUI并指定yaml