Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menghantar Data JSON dari Front-End JavaScript ke Back-End FastAPI?

Bagaimana untuk Menghantar Data JSON dari Front-End JavaScript ke Back-End FastAPI?

DDD
DDDasal
2024-11-10 14:05:03451semak imbas

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

Menghantar Data JSON daripada JavaScript Front-End ke FastAPI Back-End

Dalam FastAPI, parameter yang diisytiharkan dalam fungsi tanpa menjadi sebahagian daripada parameter laluan secara automatik ditafsirkan sebagai pertanyaan parameter. Tafsiran ini berbeza daripada amalan biasa menghantar data JSON dalam badan permintaan.

Untuk menangani percanggahan ini, terdapat beberapa pilihan:

Menggunakan Model Pydantic

Buat Pydantic model untuk mentakrifkan badan JSON yang dijangkakan:

from pydantic import BaseModel

class Item(BaseModel):
    eth_addr: str

@app.post("/ethAddress")
def add_eth_addr(item: Item):
    return item

JavaScript Ambil API:

headers: {
  Accept: "application/json",
  "Content-Type": "application/json",
},
body: JSON.stringify({ eth_addr: "some addr" }),

Menggunakan Parameter Badan

Gunakan Badan= dengan jenis:

from fastapi import Body

@app.post("/ethAddress")
def add_eth_addr(eth_addr: str = Body()):
    return {"eth_addr": eth_addr}

API Ambil JavaScript:

headers: {
  Accept: "application/json",
  "Content-Type": "application/json",
},
body: JSON.stringify("some addr"),

Menggunakan Parameter Benam Badan

Ringkaskan parameter badan sahaja menggunakan 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" }),

Untuk butiran tambahan dan contoh dengan JavaScript, rujuk kepada:

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

Ingat, menggunakan parameter pertanyaan bukanlah pendekatan biasa untuk data badan JSON dalam API web. Laraskan kod anda dengan sewajarnya untuk memadankan pilihan ini.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Data JSON dari Front-End JavaScript ke Back-End FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn