FastAPI如何让OpenAPI文档支持中文且显示Markdown

来源:站长源码作者:俊华头衔:草根站长
导读:本期聚焦于小伙伴创作的《FastAPI如何让OpenAPI文档支持中文且显示Markdown》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《FastAPI如何让OpenAPI文档支持中文且显示Markdown》有用,将其分享出去将是对创作者最好的鼓励。

FastAPI框架默认生成的OpenAPI文档以英文展示,且不支持Markdown格式的内容渲染,在实际开发尤其是面向国内用户的项目中,往往需要调整配置让文档显示中文并支持Markdown,提升文档的可读性。

FastAPI如何让OpenAPI文档支持中文且显示Markdown

基础配置:让OpenAPI文档显示中文

要让文档的基础信息显示中文,需要自定义FastAPI的openapi配置,修改文档的标题、描述等基础字段,同时可以配置文档的版本信息。

首先创建FastAPI实例时,可以传入基础的文档信息,这些字段支持直接填写中文:

from fastapi import FastAPI

app = FastAPI(
    title="用户管理接口",  # 文档标题,支持中文
    description="提供用户相关的增删改查接口,支持用户信息的批量操作",  # 文档整体描述,支持中文
    version="1.0.0"  # 接口版本
)

@app.get("/users")
def get_users():
    return {"msg": "获取用户列表成功"}

运行项目后访问/docs路径,就能看到文档标题和整体描述已经显示为设置的中文内容。

进阶配置:支持Markdown格式渲染

FastAPI的OpenAPI文档基于Swagger UI,默认不会渲染Markdown内容,需要在自定义OpenAPI配置中添加Markdown相关的支持配置,同时修改Swagger UI的参数。

自定义OpenAPI方法

通过重写FastAPI的openapi方法,添加swagger_ui_parameters配置,开启Markdown渲染支持:

from fastapi import FastAPI
from fastapi.openapi.utils import get_openapi

app = FastAPI(
    title="用户管理接口",
    description="## 接口说明n- 所有接口都需要携带`Authorization`请求头n- 返回格式统一为JSON结构",
    version="1.0.0"
)

def custom_openapi():
    if app.openapi_schema:
        return app.openapi_schema
    # 生成默认的OpenAPI schema
    openapi_schema = get_openapi(
        title=app.title,
        version=app.version,
        description=app.description,
        routes=app.routes,
    )
    # 添加Swagger UI配置,开启Markdown支持
    openapi_schema["swagger_ui_parameters"] = {
        "markdown": True  # 开启Markdown渲染
    }
    app.openapi_schema = openapi_schema
    return app.openapi_schema

# 将自定义的openapi方法绑定到app实例
app.openapi = custom_openapi

@app.get("/users/{user_id}")
def get_user(user_id: int):
    """
    获取单个用户详情
    ## 请求参数说明
    - `user_id`: 用户唯一ID,类型为整型
    ## 返回示例
    ```json
    {
        "id": 1,
        "name": "张三",
        "age": 25
    }
    ```
    """
    return {"id": user_id, "name": "张三", "age": 25}

接口描述中编写Markdown内容

在接口的文档字符串(docstring)中可以直接编写Markdown格式的内容,包括标题、列表、代码块、加粗等格式,开启Markdown支持后这些内容会被正确渲染。

比如上面的get_user接口的docstring中使用了二级标题、无序列表、代码块等Markdown语法,访问文档页面就能看到对应的渲染效果。

注意事项

  • Markdown语法需要符合标准格式,避免出现未闭合的标记导致渲染异常
  • 如果需要在参数描述中使用Markdown,可以在Path、Query等参数的description字段中编写Markdown内容,同样会被渲染
  • 若部署时文档出现样式问题,可以检查是否正确配置了swagger_ui_parameters的markdown参数

完整示例验证

运行上述完整代码后,访问http://127.0.0.1:8000/docs,可以看到:

  • 文档标题、整体描述都显示为中文
  • 接口描述中的Markdown内容(标题、列表、代码块)都被正确渲染
  • 参数说明中的Markdown格式也能正常展示

这样就完成了FastAPI的OpenAPI文档中文显示和Markdown支持的全部配置,开发者可以根据实际需求调整文档的内容和格式。

FastAPIOpenAPI中文文档MarkdownAPI文档修改时间:2026-06-26 15:18:31

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。