You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI如何将所有接口参数纳入JSON请求体?

FastAPI 统一将所有参数放入JSON请求体的解决方案

不用给每个str类型参数单独创建类,只需要把所有请求参数整合到一个Pydantic模型里即可,具体操作如下:

1. 定义包含所有参数的Pydantic模型

把你原来的字符串字段(site_name、locale等)和已定义好的OriginList、DestinationList等类型的字段,全部放到一个新的Pydantic模型中,可选字段设置默认值None:

from pydantic import BaseModel
from typing import Union, Optional

# 假设你已经提前定义了OriginList、DestinationList、FilterList类
class ContentRelevancyRequest(BaseModel):
    site_name: str
    locale: str
    lob: str
    page_type: str
    origins: Optional[OriginList] = None
    destinations: Optional[DestinationList] = None
    optimisation_opportunity: Union[str, None] = None
    filter: Optional[FilterList] = None

2. 修改接口函数接收模型参数

将原来接口的多个参数替换成这个新模型的实例,FastAPI会自动把请求的JSON体解析为模型对象:

@router.post(path='/content-relevancy-interface/submit')
def content_relevancy_get_records(request: ContentRelevancyRequest):
    # 访问参数示例:request.site_name、request.origins
    # 这里编写你的业务逻辑
    return {"status": "success", "request_params": request.dict()}

这样处理后,所有参数都会被作为JSON请求体的一部分接收,既复用了你已有的自定义类,又不用单独为每个字符串字段创建新类,同时还能利用Pydantic的自动数据校验和接口文档生成能力。


内容的提问来源于stack exchange,提问作者Akshay Hazari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 01:03:22