POST 요청을 통해 JSON 데이터를 보낼 때 FastAPI의 422 오류를 해결하는 방법
422 Unprocessable Entity 오류는 일반적으로 요청의 페이로드가 구문상일 때 발생합니다. 정확하지만 서버의 기대와 일치하지 않습니다. 이 특정 사례에서는 요청이 데이터를 쿼리 매개변수로 수신할 것으로 예상하는 엔드포인트에 JSON 데이터를 보내려고 하기 때문에 이 오류가 발생합니다.
이 문제를 해결하려면 다양한 접근 방식 사용 가능:
옵션 1: Pydantic 활용 모델
from pydantic import BaseModel class User(BaseModel): user: str @app.post('/') def main(user: User): return user
옵션 2: 본문 매개변수 사용
from fastapi import Body @app.post('/') def main(user: str = Body(..., embed=True)): return {'user': user}
옵션 3: 사전 유형 활용
from typing import Dict, Any @app.post('/') def main(payload: Dict[Any, Any]): return payload
옵션 4: 요청 본문에 직접 액세스
from fastapi import Request @app.post('/') async def main(request: Request): return await request.json()
옵션 테스트
Python '요청' 사용 라이브러리:
import requests url = 'http://127.0.0.1:8000/' payload = {'user': 'foo'} resp = requests.post(url=url, json=payload) print(resp.json())
JavaScript의 Fetch API 사용:
fetch('/', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({'user': 'foo'}) }).then(resp => resp.json()) .then(data => { console.log(data); }) .catch(error => { console.error(error); });이러한 접근 방식 중 하나를 선택하고 구현하면 다음에서 JSON 데이터를 성공적으로 처리할 수 있습니다. FastAPI 엔드포인트를 사용하여 422 오류를 해결하세요.
위 내용은 JSON 데이터를 게시할 때 FastAPI의 422 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!