> 백엔드 개발 > 파이썬 튜토리얼 > JavaScript 프런트엔드에서 FastAPI 백엔드로 JSON 데이터를 보내는 방법은 무엇입니까?

JavaScript 프런트엔드에서 FastAPI 백엔드로 JSON 데이터를 보내는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-10 14:05:03
원래의
447명이 탐색했습니다.

How to Send JSON Data from a JavaScript Front-End to a FastAPI Back-End?

JavaScript 프런트엔드에서 FastAPI 백엔드로 JSON 데이터 보내기

FastAPI에서 경로 매개변수의 일부가 아닌 함수에 선언된 매개변수는 자동으로 쿼리로 해석됩니다. 매개변수. 이 해석은 요청 본문에 JSON 데이터를 전달하는 일반적인 관행과 다릅니다.

이러한 불일치를 해결하기 위해 다음과 같은 몇 가지 옵션이 있습니다.

Pydantic 모델 사용

Pydantic 생성 예상되는 JSON 본문을 정의하는 모델:

from pydantic import BaseModel

class Item(BaseModel):
    eth_addr: str

@app.post("/ethAddress")
def add_eth_addr(item: Item):
    return item
로그인 후 복사

JavaScript Fetch API:

headers: {
  Accept: "application/json",
  "Content-Type": "application/json",
},
body: JSON.stringify({ eth_addr: "some addr" }),
로그인 후 복사
로그인 후 복사

본문 매개변수 사용

유형과 함께 Body= 사용:

from fastapi import Body

@app.post("/ethAddress")
def add_eth_addr(eth_addr: str = Body()):
    return {"eth_addr": eth_addr}
로그인 후 복사

JavaScript Fetch API:

headers: {
  Accept: "application/json",
  "Content-Type": "application/json",
},
body: JSON.stringify("some addr"),
로그인 후 복사

본문 포함 매개변수 사용

embed=True를 사용하여 본문 전용 매개변수 단순화:

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

JavaScript Fetch API :

headers: {
  Accept: "application/json",
  "Content-Type": "application/json",
},
body: JSON.stringify({ eth_addr: "some addr" }),
로그인 후 복사
로그인 후 복사

자바스크립트에 대한 자세한 내용과 예시는 다음을 참조하세요.

  • https://fastapi.tiangolo.com/advanced/requestBody/
  • https://fastapi.tiangolo.com/tutorial/body-forms/#formencoded-or-raw-body-few-parameters
  • https://stackoverflow.com/questions/55333220/fastapi-validation- for-payload-when-using-body

쿼리 매개변수를 사용하는 것은 웹 API에서 JSON 본문 데이터에 대한 일반적인 접근 방식이 아니라는 점을 기억하세요. 이러한 옵션과 일치하도록 코드를 적절하게 조정하세요.

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

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