请求体参数 
在路径函数中,给一个形参声明为pydantic模型类型,这个参数就会自动变成请求体参数。
py
class UserBase(BaseModel):
    id: int
    name: str
@app.get('/')
async def index(user: UserBase): ...这样声明之后就能保证收到的数据的格式了,他会自动过滤并且转换成对应的类型,需要注意的是过滤后的数据是pydantic实例 不是dict,可以用.dict()方法转成字典。
js
// 收到的数据
{"id": "123", "name": "admin", "phone": "151111"}
// 转换后过滤掉多余字段,而且id也变成int类型了
{"id": 123, "name": "admin"}使用依赖项时要注意,形参的类型由依赖项的返回值决定,这里声明类型不会过滤数据
py
def get_current_user():
    return {'id': 1, 'name': 'test'}
    
@app.get('/')
# user的类型由get_current_user返回值决定
async def index(user: UserBase = Depends(get_current_user)): ...user的类型是get_current_user的返回值,这里声明UserBase只是普通的类型声明,不会过滤数据(官方说明)。 为了保证数据的格式,建议在依赖项返回前用pydantic模型过滤一下,上面的例子可以改成这样
py
def get_current_user():
    # 返回数据前用模型过滤一下
    return UserBase(**{'id': 1, 'name': 'test'})
    
@app.get('/')
async def index(user: UserBase = Depends(get_current_user)): ...