Ralat Pengendalian dalam Menyiarkan Data JSON daripada JavaScript ke FastAPI
Untuk menghantar data daripada bahagian hadapan JavaScript ke bahagian belakang FastAPI, anda mesti memastikan data dihantar dalam format yang betul dan ke titik akhir yang sesuai. Jika anda menghadapi ralat 422 Entiti Tidak Boleh Diproses, ia mungkin disebabkan oleh pemformatan data yang salah.
Secara lalai, FastAPI mentafsir parameter fungsi yang tidak disertakan dalam laluan sebagai parameter pertanyaan. Walau bagaimanapun, untuk data JSON, anda perlu menentukannya secara eksplisit menggunakan salah satu kaedah berikut:
Tentukan model Pydantic untuk mewakili struktur data JSON:
from pydantic import BaseModel class Item(BaseModel): eth_addr: str @app.post('/ethAddress') def add_eth_addr(item: Item): return item
Gunakan jenis Badan untuk menentukan bahawa parameter harus dihuraikan daripada badan permintaan:
from fastapi import Body @app.post('/ethAddress') def add_eth_addr(eth_addr: str = Body()): return {'eth_addr': eth_addr}
Untuk parameter badan tunggal, anda boleh menggunakan argumen embed=True untuk menghuraikan data secara automatik daripada badan permintaan:
from fastapi import Body @app.post('/ethAddress') def add_eth_addr(eth_addr: str = Body(embed=True)): return {'eth_addr': eth_addr}
Apabila menggunakan API Ambil dalam JavaScript untuk menghantar data JSON, anda mesti menetapkan pengepala Jenis Kandungan kepada aplikasi/json dan nyatakan data dalam medan badan:
fetch("http://localhost:8000/ethAddress", { method: "POST", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ "eth_addr": "some address" }), });
Untuk maklumat lanjut dan contoh terperinci, rujuk dokumentasi dan sumber berikut:
Atas ialah kandungan terperinci Bagaimana Mengendalikan Ralat Semasa Menghantar Data JSON dari JavaScript ke FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!