將JSON 資料從JavaScript 發佈到FastAPI 時的錯誤處理
要將資料從JavaScript 前端傳送到FastAPI 後端,您必須確保資料以正確的格式傳遞到適當的端點。如果遇到 422 Unprocessable Entity 錯誤,很可能是因為資料格式不正確造成的。
預設情況下,FastAPI 將未包含在路徑中的函數參數解釋為 查詢參數。但是,對於JSON 數據,您需要使用以下方法之一明確指定它:
定義一個Pydantic 模型來表示JSON 資料結構:
from pydantic import BaseModel class Item(BaseModel): eth_addr: str @app.post('/ethAddress') def add_eth_addr(item: Item): return item
使用Body類型指定應從請求正文中解析參數:
from fastapi import Body @app.post('/ethAddress') def add_eth_addr(eth_addr: str = Body()): return {'eth_addr': eth_addr}
對於單一body 參數,您可以使用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傳送JSON資料時,必須將Content-Type header設定為application/json並在body中指定資料欄位:
fetch("http://localhost:8000/ethAddress", { method: "POST", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ "eth_addr": "some address" }), });
有關更多資訊和詳細範例,請參閱以下文件和資源:
以上是從 JavaScript 發送 JSON 資料到 FastAPI 如何處理錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!