如何在FastAPI中通过requests传递Pydantic模型至接口?
FastAPI中Pydantic模型传递与请求体构造方案
一、requests请求体构造方法
你的ChatMessageCreate模型继承自ChatMessageBase,需要传入的字段为sender_id(整数类型)、receiver_id(整数类型)、message_content(字符串类型)。用requests测试时,直接构造包含这三个字段的JSON字典作为请求体即可,示例代码如下:
import requests # 替换为你的API实际地址 api_url = "http://localhost:8000/assistant_chat/" request_body = { "sender_id": 1001, "receiver_id": 1002, "message_content": "这是一条测试消息" } # 发送POST请求,使用json参数自动设置Content-Type为application/json response = requests.post(api_url, json=request_body) # 打印响应结果 print(response.json())
二、FastAPI字段映射原理
FastAPI与Pydantic的字段匹配逻辑非常直接:
- 按字段名匹配:框架会将请求JSON体中的键名与Pydantic模型定义的字段名一一对应,比如请求里的
sender_id会自动映射到ChatMessageBase中的sender_id字段,receiver_id同理。 - 自动类型校验:除了字段名匹配,FastAPI还会根据模型定义的字段类型(如
int、str)自动校验请求值的类型,如果传入的sender_id是字符串而非整数,框架会直接返回422类型错误,无需手动编写校验逻辑。 - 自动解析JSON:当你在接口函数中声明
chat_message: schema.ChatMessageCreate参数时,FastAPI会自动识别这是一个请求体参数,自动解析请求的JSON内容并实例化为ChatMessageCreate对象,你直接使用该对象调用CRUD函数即可。
内容的提问来源于stack exchange,提问作者Momo0815
相关产品推荐
相关产品推荐

