JavaScript에서 FastAPI로 JSON 데이터를 보낼 때 오류를 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-13 16:53:03
원래의
838명이 탐색했습니다.

How to Handle Errors When Sending JSON Data from JavaScript to FastAPI?

JavaScript에서 FastAPI로 JSON 데이터 게시 시 오류 처리

JavaScript 프런트엔드에서 FastAPI 백엔드로 데이터를 보내려면 다음을 확인해야 합니다. 데이터는 올바른 형식으로 적절한 엔드포인트로 전달됩니다. 422 Unprocessable Entity 오류가 발생하는 경우 잘못된 데이터 형식 때문일 가능성이 높습니다.

쿼리 매개변수와 JSON 매개변수

기본적으로 FastAPI는 경로에 포함되지 않은 함수 매개변수를 쿼리 매개변수. 단, JSON 데이터의 경우 다음 방법 중 하나를 사용하여 명시적으로 지정해야 합니다.

1. Pydantic 모델:

JSON 데이터 구조를 나타내는 Pydantic 모델 정의:

from pydantic import BaseModel

class Item(BaseModel):
    eth_addr: str

@app.post('/ethAddress')
def add_eth_addr(item: Item):
    return item
로그인 후 복사
2. 본문 유형:

요청 본문에서 매개변수를 구문 분석해야 함을 지정하려면 본문 유형을 사용합니다.

from fastapi import Body

@app.post('/ethAddress')
def add_eth_addr(eth_addr: str = Body()):
    return {'eth_addr': eth_addr}
로그인 후 복사
3. 본문 삽입:

단일 본문 매개변수의 경우 embed=True 인수를 사용하여 요청 본문의 데이터를 자동으로 구문 분석할 수 있습니다.

from fastapi import Body

@app.post('/ethAddress')
def add_eth_addr(eth_addr: str = Body(embed=True)):
    return {'eth_addr': eth_addr}
로그인 후 복사
JavaScript Fetch API

JavaScript에서 Fetch API를 사용하여 JSON 데이터를 보내는 경우 Content-Type 헤더를 application/json으로 설정하고 본문 필드에 데이터를 지정해야 합니다.

fetch("http://localhost:8000/ethAddress", {
  method: "POST",
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "eth_addr": "some address"
  }),
});
로그인 후 복사
추가 리소스

자세한 내용과 자세한 예는 다음 문서와 리소스를 참조하세요.

    [FastAPI JSON 요청 및 응답](https://fastapi.tiangolo.com/tutorial/body/)
  • [JavaScript에서 POST 요청으로 JSON 데이터 보내기](https://stackoverflow.com/questions/44832885/sending-json-data-with-post-requests-in-javascript)
  • [ Fetch API를 사용하여 JavaScript에서 JSON 콘텐츠가 포함된 POST 요청](https://stackoverflow.com/questions/55749929/post-request-with-json-content-in-javascript-using-fetch-api)

위 내용은 JavaScript에서 FastAPI로 JSON 데이터를 보낼 때 오류를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿