我似乎无法通过Postman向FastAPI应用程序发送POST请求。
- FastAPI版本0.89.1
- Python版本3.10.9
from fastapi import FastAPI
from fastapi.params import Body
from pydantic import BaseModel
app = FastAPI()
class Post(BaseModel):
title : str
content : str
@app.get("/")
async def root():
return {"message": "Hello."}
@app.post("/createposts/")
def create_posts(new_post:Post):
print(new_post.title)
return {"new_post":f"title:"[new_post.title]}
我得到了以下错误
INFO: Finished server process [44982]
INFO: Started server process [45121]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: 127.0.0.1:64722 - "POST /createposts/ HTTP/1.1" 422 Unprocessable Entity
我正在遵循教程,我似乎无法找到其他用户的答案.
我尝试使用dict: Body(...)
输入参数。
我也使用 Postman ,这是错误:
{
"detail": [
{
"loc": [
"body"
],
"msg": "value is not a valid dict",
"type": "type_error.dict"
}
]
}
这是我在Postman上请求的截图。
我使用POST端点向URL发出POST请求:
{
"title":"a",
"content":"b"
}
1条答案
按热度按时间klsxnrf11#
在Postman中,需要将Body设置为JSON类型。
在屏幕截图中,您将其设置为文本:
应设置为JSON:
而且它应该像预期的那样工作Note 1,如屏幕截图所示。
正如MatsLindh在评论中所说,您可以打开代码段部分的面板,检查Postman是如何准确地转换您的请求的:
它应该显示
JSON。您可能将其作为
FastAPI无法正确解析的文本。
附注1
这与验证错误无关,但是端点上的f字符串中有一个输入错误,值的右双引号放错了位置。
这一点:
应为: