fastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,与 Starlette 和 Pydantic 集成。它具有自动生成交互式 API 文档的功能,可以极大地提升开发效率。本文将详细介绍如何轻松修改 fastAPI 的交互文档,帮助开发者更好地利用这一功能。
1. 了解 fastAPI 的交互文档
fastAPI 默认使用 Swagger UI 作为交互式文档的界面,用户可以通过它查看 API 的定义、发送请求、测试 API 等。交互文档的生成依赖于 Pydantic 模型,即 Python 数据验证和设置库。
2. 修改交互文档的基本步骤
2.1 定义 Pydantic 模型
在 fastAPI 应用中,首先需要定义 Pydantic 模型来描述 API 的输入和输出数据结构。以下是一个示例:
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
2.2 使用 Pydantic 模型
将定义好的 Pydantic 模型应用于 fastAPI 路由和响应中。以下是一个使用上述模型的示例:
from fastapi import FastAPI, HTTPException
app = FastAPI()
@app.post("/items/")
def create_item(item: Item):
# 处理创建物品的逻辑
return item
2.3 修改交互文档
默认情况下,fastAPI 生成的交互文档包含了 API 路由、参数、请求和响应等信息。以下是一些修改交互文档的方法:
2.3.1 修改参数描述
@app.post("/items/")
def create_item(item: Item):
"""
创建一个新的物品
- 名称: 物品名称
- 描述: 物品描述 (可选)
- 价格: 物品价格
- 税费: 物品税费 (可选)
"""
# 处理创建物品的逻辑
return item
2.3.2 修改响应描述
@app.post("/items/")
def create_item(item: Item):
# 处理创建物品的逻辑
return {
"id": 1,
"name": item.name,
"description": item.description,
"price": item.price,
"tax": item.tax
}
2.3.3 修改路径描述
@app.post("/items/{item_id}")
def update_item(item_id: int, item: Item):
"""
更新指定 ID 的物品
- 物品 ID: 要更新的物品 ID
- 名称: 物品名称
- 描述: 物品描述 (可选)
- 价格: 物品价格
- 税费: 物品税费 (可选)
"""
# 处理更新物品的逻辑
return item
3. 使用 externalDocs
如果你想添加更多的文档信息,例如外部链接,可以使用 externalDocs
字段。以下是一个示例:
from fastapi import APIRouter
router = APIRouter()
@router.get("/items/")
def list_items():
"""
获取物品列表
- 更多信息: [点击这里](https://example.com/items)
"""
# 获取物品列表的逻辑
return {"items": []}
app.include_router(router)
4. 总结
通过修改 fastAPI 的交互文档,可以方便地展示 API 的功能和用法,提升开发效率。了解 Pydantic 模型、使用参数和响应描述、以及利用 externalDocs
等方法,可以帮助你更好地利用 fastAPI 的交互文档功能。希望本文能帮助你快速掌握 fastAPI 交互文档的修改技巧。