首頁 > 後端開發 > Python教學 > 從 JavaScript 發送 JSON 資料到 FastAPI 如何處理錯誤?

從 JavaScript 發送 JSON 資料到 FastAPI 如何處理錯誤?

Mary-Kate Olsen
發布: 2024-11-13 16:53:03
原創
941 人瀏覽過

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

將JSON 資料從JavaScript 發佈到FastAPI 時的錯誤處理

要將資料從JavaScript 前端傳送到FastAPI 後端,您必須確保資料以正確的格式傳遞到適當的端點。如果遇到 422 Unprocessable Entity 錯誤,很可能是因為資料格式不正確造成的。

查詢參數與 JSON 參數

預設情況下,FastAPI 將未包含在路徑中的函數參數解釋為 查詢參數。但是,對於JSON 數據,您需要使用以下方法之一明確指定它:

1. Pydantic 模型:

定義一個Pydantic 模型來表示JSON 資料結構:

from pydantic import BaseModel

class Item(BaseModel):
    eth_addr: str

@app.post('/ethAddress')
def add_eth_addr(item: Item):
    return item
登入後複製

2. Body類型:

使用Body類型指定應從請求正文中解析參數:

from fastapi import Body

@app.post('/ethAddress')
def add_eth_addr(eth_addr: str = Body()):
    return {'eth_addr': eth_addr}
登入後複製

3. Body Embed:

對於單一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

在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"
  }),
});
登入後複製

其他資源

有關更多資訊和詳細範例,請參閱以下文件和資源:

  • [FastAPI JSON 請求和回應] (https://fastapi.tiangolo.com/tutorial/body/)
  • 【透過POST請求發送JSON資料在JavaScript 中](https://stackoverflow.com/questions/44832885/sending-json- data-with-post-requests-in-javascript)
  • [使用Fetch 在JavaScript 中傳送包含JSON內容的請求API](https://stackoverflow.com/questions/55749929/post-request-with-json-content-in-javascript-using-fetch-api)

以上是從 JavaScript 發送 JSON 資料到 FastAPI 如何處理錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板