· 约 2 分钟
09-FastAPI基础入门-请求体参数_Field类型注解
学习目标
- 理解
Field的作用 - 学会给请求体字段添加说明、默认值和校验规则
- 提高接口文档的可读性
核心概念
Field 是给请求体模型中的字段增加元信息和校验规则的工具,和 Path、Query 的思路很像。
它适合做这些事:
- 指定默认值
- 添加字段说明
- 设置最小长度、最大长度
- 设置数值范围
- 给文档页添加示例
代码示例
from fastapi import FastAPI
from pydantic import BaseModel, Field
app = FastAPI()
class ItemCreate(BaseModel):
name: str = Field(min_length=2, max_length=30, description="商品名称")
price: float = Field(gt=0, description="商品价格,必须大于 0")
stock: int = Field(default=0, ge=0, description="库存数量")
@app.post("/items")
def create_item(item: ItemCreate):
return item.model_dump()
规则示例
min_length=2:字符串最短 2 位max_length=30:字符串最长 30 位gt=0:数值必须大于 0ge=0:数值必须大于等于 0
实际意义
如果你不写这些规则,很多错误会拖到数据库层或业务层才暴露。
如果你在 Field 就写清楚,错误会更早、也更容易发现。
易错点
- 把
Field当成类型本身,它只是字段配置 - 请求体字段校验写得太宽松,导致脏数据进入系统
- 默认值和必填项逻辑冲突
例如:
stock: int = Field(...)
这里 ... 表示必填。
我的补充
Field 的价值不仅是“防错”,还在于让接口文档更像正式产品文档。
后端给前端的合作体验,很多时候就体现在这些细节上。