FastAPI /download-csv接口curl请求报422错误,求正确调用方式
解决FastAPI接口422 Unprocessable Entity错误的正确curl调用方法
你的FastAPI接口中,month、card_no、schema_order、page_no这些参数都被定义为URL查询参数(通过Query类声明),但你之前的curl请求将参数放在了JSON请求体中,这不符合接口的参数接收规则,因此触发422错误。
正确的curl调用方式需要把所有参数放在URL的查询字符串中,列表类型参数(如card_no、schema_order)可以通过以下两种方式传递:
方式1:重复参数名传递列表
curl -X 'POST' \ 'http://127.0.0.1:8000/download-csv/?month=2024-01-06&card_no=123456789&schema_order=id&schema_order=card_type&schema_order=score&schema_order=card_no&schema_order=month&page_no=2' \ -H 'accept: application/json'
方式2:逗号分隔传递列表(FastAPI默认支持)
curl -X 'POST' \ 'http://127.0.0.1:8000/download-csv/?month=2024-01-06&card_no=123456789&schema_order=id,card_type,score,card_no,month&page_no=2' \ -H 'accept: application/json'
补充说明
- 因为当前接口没有接收请求体参数的逻辑,所以不需要
Content-Type: application/json请求头和-d参数部分。 - 如果需要通过请求体传递参数,需修改FastAPI接口代码,将参数定义为Pydantic模型(结合
Body或直接作为请求体模型),但当前接口设计为查询参数接收,优先按上述两种方式调用即可。
内容的提问来源于stack exchange,提问作者abinash thakur
相关产品推荐
相关产品推荐

