FastAPI中逗号分隔查询参数列表的处理方法
在使用FastAPI构建API时,经常需要处理多个可选参数,例如根据多个ID或状态筛选数据。直接使用列表类型作为查询参数,FastAPI会将每个列表元素解析成独立参数,导致URL冗长。本文介绍如何将列表参数以逗号分隔的形式传递,而非多个同名键值对。
例如,source参数期望接收多个枚举值,但FastAPI默认解析成多个source参数(例如:source=manual&source=vdna,而非source=manual,vdna)。
解决方法主要有两种:
方法一:字符串类型及后端解析
将参数类型声明为Optional[str],在后端代码中使用split(“,”)函数解析逗号分隔字符串。
from fastapi import APIRouter, Queryfrom typing import Optional# ...其他代码...@review.get('/list', summary='获取待审核列表')def list_await_review( # ...其他参数... source: Optional[str] = Query(None, description="请使用逗号`,`分割多个参数,例如:`Manual,vDNA,text-match`"), # ...其他参数...): parsed_source = source.split(",") if source else [] # ...后续处理parsed_source...
登录后复制
本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。