FastAPI如何优雅地处理逗号分隔的查询参数列表?

fastapi如何优雅地处理逗号分隔的查询参数列表?

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生成,不代表软件指南立场。本站不负任何法律责任。

如若转载请注明出处:http://www.down96.com/tutorials/8399.html

热心网友热心网友
上一篇 2025-04-11 15:57
下一篇 2025-04-11 15:57

相关推荐

本站[软件指南]所有内容来自互联网投稿或AI智能生成,并不代表软件指南的立场。