web-dev-qa-db-ja.com

Python:POSTリクエストでのFastAPIエラー422

データベースをテストするための簡単なAPIを構築しています。 getリクエストを使用するとすべてが正常に機能しますが、postに変更すると「unprocessable entity」エラーが発生します。

FastAPIコードは次のとおりです。

from fastapi import FastAPI

app = FastAPI()

@app.post("/")
def main(user):
    return user

次に、JavaScriptを使用した私のリクエスト

let axios = require('axios')

data = { 
    user: 'smith' 
}

axios.post('http://localhost:8000', data)
    .then(response => (console.log(response.url)))

そしてPythonを使う

import requests

url = 'http://127.0.0.1:8000'
data = {'user': 'Smith'}

response = requests.post(url, json=data)
print(response.text)

また、jsonとして解析し、utf-8を使用してエンコードし、ヘッダーを変更しようとしています。私にとってはうまくいきませんでした。

3
Smith

POSTリクエストボディを取り込むためのリクエストの場合、次のようにする必要があります

Pydanticベースモデルユーザーを作成する

from pydantic import BaseModel

class User(BaseModel):
    user_name: str


@app.post("/")
def main(user: User):
   return user
1
Avinash Ravi