Fehlerbehandlung beim Posten von JSON-Daten von JavaScript an FastAPI
Um Daten von einem JavaScript-Frontend an ein FastAPI-Backend zu senden, müssen Sie sicherstellen, dass Daten werden im richtigen Format und an den entsprechenden Endpunkt übergeben. Wenn der Fehler 422 Unprocessable Entity auftritt, liegt dies wahrscheinlich an einer falschen Datenformatierung.
Standardmäßig interpretiert FastAPI Funktionsparameter, die nicht im Pfad enthalten sind, als Abfrageparameter. Für JSON-Daten müssen Sie diese jedoch explizit mit einer der folgenden Methoden angeben:
Definieren Sie ein Pydantic-Modell zur Darstellung der JSON-Datenstruktur:
from pydantic import BaseModel class Item(BaseModel): eth_addr: str @app.post('/ethAddress') def add_eth_addr(item: Item): return item
Verwenden Sie den Körpertyp, um anzugeben, dass der Parameter aus dem Anforderungskörper analysiert werden soll:
from fastapi import Body @app.post('/ethAddress') def add_eth_addr(eth_addr: str = Body()): return {'eth_addr': eth_addr}
Für einen einzelnen Body-Parameter können Sie das Argument „embed=True“ verwenden, um die Daten aus dem Anfragetext automatisch zu analysieren:
from fastapi import Body @app.post('/ethAddress') def add_eth_addr(eth_addr: str = Body(embed=True)): return {'eth_addr': eth_addr}
Wenn Sie die Fetch-API in JavaScript zum Senden von JSON-Daten verwenden, müssen Sie den Content-Type-Header auf application/json setzen und die Daten im Text angeben Feld:
fetch("http://localhost:8000/ethAddress", { method: "POST", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ "eth_addr": "some address" }), });
Weitere Informationen und detaillierte Beispiele finden Sie in der folgenden Dokumentation und Ressourcen:
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Fehlern beim Senden von JSON-Daten von JavaScript an FastAPI um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!