Site
链接
- https://pipx.pypa.io/stable/installation/
- https://python-poetry.org/docs/
- https://www.postgresqltutorial.com/
- https://fastapi.tiangolo.com/zh/project-generation/
- https://www.uvicorn.org/
- https://github.com/tiangolo/full-stack-fastapi-template/blob/master/backend/pyproject.toml
- https://docs.pydantic.dev/latest/concepts/dataclasses/
fastapi 使用 knife4j 替换 swagger-ui 🚗
Knife4j 是一个为 Java 服务的 API 文档生成工具,它是 Swagger 的增强 UI 实现。对于 FastAPI 用户来说,FastAPI 内置了 Swagger UI 和 ReDoc 两种 API 文档界面。如果你想要使用类似于 Knife4j 的替代品来增强 FastAPI 的 Swagger UI,你需要寻找 Python 社区中的相应工具或自定义实现。
截至目前(知识截止日期为 2023 年),FastAPI 官方没有直接集成 Knife4j,也没有提供类似 Knife4j 的 Python 替代品。因此,如果你想要替换 FastAPI 的默认 Swagger UI,你可能需要自己手动集成一个第三方的 Swagger UI,或者自己定制一个。
以下是一些可能的解决方案:
-
集成自定义 Swagger UI:
- 你可以下载一个自定义的 Swagger UI 版本,然后将其静态文件托管在 FastAPI 应用中。
- 你需要在 FastAPI 应用中创建一个路由来提供这些静态文件。
-
使用第三方库:
- 寻找是否有第三方库已经实现了类似 Knife4j 的功能,并且支持与 FastAPI 集成。
-
手动修改内置的 Swagger UI:
- FastAPI 允许你通过提供自定义的 HTML 模板来修改 Swagger UI。
- 你可以通过修改 FastAPI 应用中的
swagger_ui_html参数来实现这一点。
如果你只是想要自定义 Swagger UI 的外观和行为,而不是完全替换它,你可以使用 FastAPI 的自定义模板功能。以下是一个简单的示例,展示了如何自定义 FastAPI 的 Swagger UI:
from fastapi import FastAPI
from fastapi.openapi.docs import get_swagger_ui_html
app = FastAPI()
# 重写 Swagger UI 的路由
@app.get("/docs", include_in_schema=False)
async def custom_swagger_ui_html():
return get_swagger_ui_html(
title="Custom Swagger UI",
openapi_url=app.openapi_url,
swagger_favicon_url="/static/favicon.ico"
# 你可以添加更多自定义选项
)
在这个例子中,我们重写了 /docs 路径来提供一个自定义的 Swagger UI 页面。你可以修改 get_swagger_ui_html 函数的参数来自定义页面的标题、OpenAPI URL 和图标等。
请注意,这些只是修改已有 UI 的简单定制,如果你需要完全替换 Swagger UI,可能需要更复杂的集成工作。由于 Knife4j 主要是为 Java 服务的,所以在 Python 社区中可能没有直接的对应工具。你可能需要寻找或开发类似的工具,或者手动定制现有的 Swagger UI 来满足你的需求。