您的位置 首页 编程知识

FastAPI查询参数列表如何以逗号分隔的形式在URL中呈现?

FastAPI 查询参数列表的逗号分隔处理 在使用FastAPI构建API时,经常需要处理多个查询参数的情况,…

FastAPI查询参数列表如何以逗号分隔的形式在URL中呈现?

FastAPI 查询参数列表的逗号分隔处理

在使用FastAPI构建API时,经常需要处理多个查询参数的情况,例如用户可选择多个选项。本文探讨如何处理FastAPI中列表形式的查询参数,使其在URL中以逗号分隔的形式呈现,而非多个同名。

问题:

FastAPI的query参数默认情况下,若参数接受列表类型,用户传递多个相同参数,URL中会显示多个同名参数,例如source=manual&source=vdna。我们期望将这些参数以逗号分隔的形式呈现,例如source=manual,vdna。

解决方案:

HTTP参数规范允许一个参数多次出现并被解析为列表,FastAPI的默认行为符合规范。如需自定义参数解析,需自行处理。主要方法如下:

方法一:修改参数类型为字符串,自行解析

将query参数类型声明为str,在函数内部使用split()函数解析逗号分隔的字符串。例如,将source参数类型改为Optional[str],并在函数中使用以下代码:

source: Optional[str] = Query(None, description="请用`,`分割多个参数,如`Manual,vDNA,text-match`") # ... parsed_source = source.split(",") if source else [] # ...
登录后复制

此方法简单直接,易于理解和实现。

方法二:自定义依赖项进行解析和验证

此方法更灵活,可实现更复杂的解析逻辑和验证规则。通过自定义依赖项处理查询参数,并按需解析。本文为避免URL地址,不再赘述具体实现细节,可参考相关issue和文档。此方法适用于需要复杂逻辑或自定义验证规则的情况。

通过以上两种方法,可有效解决FastAPI中列表类型查询参数的逗号分隔问题,使API接口更简洁易用。

以上就是FastAPI查询参数列表如何以逗号分隔的形式在URL中呈现?的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/8245.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部