FastAPI 教程

16.2 自定义文档配置

FastAPI自定义文档配置详解 | 新手友好教程

FastAPI 教程

本教程详细讲解如何在FastAPI中自定义API文档配置,包括设置标题、描述、添加服务器信息等。适合FastAPI新手学习,提供简单易懂的步骤和代码示例。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

FastAPI自定义文档配置教程

引言

FastAPI默认会自动生成交互式API文档(通过Swagger UI和ReDoc),这为开发者提供了便利。但在实际项目中,您可能需要自定义这些文档,以匹配您的品牌风格、添加额外信息或调整配置。本教程将带您了解如何自定义FastAPI的文档配置,从基础到高级,确保新手也能轻松上手。

为什么需要自定义文档配置?

  • 品牌一致性:更改文档标题、描述或样式,以符合项目或公司形象。
  • 信息丰富:添加服务器信息、版本号或自定义元数据,提高文档的可读性。
  • 安全性:通过自定义文档URL或禁用某些功能来增强安全性。

FastAPI默认文档配置概述

FastAPI使用OpenAPI标准来生成文档。默认情况下,当您运行应用时,可以通过以下URL访问文档:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc 这些文档基于您的API路由和模型自动生成。

如何自定义文档配置

您可以在创建FastAPI应用实例时,通过参数来自定义文档。以下是一些常用参数:

1. 基本自定义:标题和描述

使用FastAPI类的参数来设置全局配置。

from fastapi import FastAPI

app = FastAPI(
    title="我的自定义API",  # 设置文档标题
    description="这是一个用于演示自定义配置的FastAPI应用。",  # 设置文档描述
    version="1.0.0",  # 设置API版本
)

@app.get("/")
def read_root():
    return {"Hello": "World"}

2. 自定义文档URL

如果您想更改默认的文档访问路径,可以使用docs_urlredoc_urlopenapi_url参数。

app = FastAPI(
    docs_url="/api-docs",  # 更改Swagger UI路径
    redoc_url="/api-redoc",  # 更改ReDoc路径
    openapi_url="/api/openapi.json",  # 更改OpenAPI JSON路径
)

3. 添加服务器信息

服务器信息对于多环境部署(如开发、测试、生产)很有用。通过servers参数添加。

app = FastAPI(
    servers=[
        {"url": "https://api.example.com", "description": "生产服务器"},
        {"url": "http://localhost:8000", "description": "开发服务器"},
    ]
)

4. 高级自定义:使用Pydantic模型添加元数据

您可以为API路由添加额外的文档信息,例如标签、摘要或示例。这可以通过路由装饰器的参数实现。

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/", tags=["items"], summary="获取项目列表", description="返回所有项目的列表。")
def read_items():
    return [{"id": 1, "name": "示例项目"}]

5. 禁用或隐藏文档

在某些情况下,您可能想在生产环境中禁用文档以提高安全性。

app = FastAPI(docs_url=None, redoc_url=None)  # 禁用文档

完整示例

以下是一个完整的示例,展示如何自定义FastAPI文档配置。

from fastapi import FastAPI

app = FastAPI(
    title="我的API应用",
    description="这是一个自定义文档配置的示例API。",
    version="2.0.0",
    docs_url="/my-docs",
    redoc_url="/my-redoc",
    servers=[
        {"url": "https://prod.example.com", "description": "生产环境"},
        {"url": "http://localhost:8000", "description": "本地开发"},
    ],
)

@app.get("/hello", tags=["greeting"], summary="问候接口")
def hello():
    return {"message": "Hello, World!"}

运行应用后,访问http://localhost:8000/my-docs查看自定义的Swagger UI文档。

常见用例和最佳实践

  • 项目初始化:在创建FastAPI应用时,尽早设置好文档配置,以确保一致性。
  • 环境配置:使用环境变量来动态设置文档URL或其他参数,以适应不同环境。
  • 版本控制:随着API更新,及时调整版本号,帮助用户跟踪变化。

结论

通过自定义FastAPI文档配置,您可以提升API文档的专业性和实用性。本教程覆盖了从基础到高级的自定义方法,包括标题、描述、URL更改和服务器信息添加。实践这些步骤,您将能轻松定制适合您项目的API文档。

继续学习FastAPI时,探索更多高级功能,如自定义OpenAPI模式或集成第三方工具,以进一步优化您的API开发体验。

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包