python - 快速 API 帖子无法识别我的参数
问题描述
我通常使用 Tornado,并尝试迁移到 Fast API。
让我们说一下非常基本的以下 API
@app.post("/add_data")
async def add_data(data):
return data
当我运行以下 Curl 请求时:
curl http://127.0.0.1:8000/add_data -d 'data=Hello'
我收到以下错误:
{"detail":[{"loc":["query","data"],"msg":"field required","type":"value_error.missing"}]}
所以我确信我错过了一些非常基本的东西,但我看不到什么。
解决方案
由于您要发送字符串数据,因此您必须在路由器函数中指定它,并键入as
from pydantic import BaseModel
class Payload(BaseModel):
data: str = ""
@app.post("/add_data")
async def add_data(payload: Payload = None):
return payload
示例 cURL 请求将采用以下形式,
curl -X POST "http://0.0.0.0:6022/add_data" -d '{"data":"Hello"}'
推荐阅读
- c# - 具有 EqualityComparer 的唯一序列列表
- sql - 简单选择查询的执行时间是无限的
- c++ - 由于意外的模板参数类型推导导致无限递归
- html - 带有侧面下拉菜单的 CSS 拆分按钮
- visual-studio - 如何从 GitHub 执行程序(没有 .sln 文件或 .win32 文件)?
- python - 如何在 vscode 中(在集成终端中)拥有一个带有自己选项卡的 python 解释器?
- javascript - PWA - 我需要时提示“添加到主屏幕”?
- python - 制作街头艺人名单
- regex - 使用正则表达式在 Google Datastudio 中提取 URL 文件夹
- ajax - 十月 CMS 中的 ajax 请求总是得到空对象