Maison >développement back-end >Tutoriel Python >Comment gérer les erreurs lors de l'envoi de données JSON de JavaScript vers FastAPI ?
Gestion des erreurs lors de la publication de données JSON de JavaScript vers FastAPI
Pour envoyer des données d'une interface JavaScript vers un backend FastAPI, vous devez vous assurer que les données sont transmises dans le format correct et au point de terminaison approprié. Si vous rencontrez une erreur 422 Unprocessable Entity, cela est probablement dû à un formatage de données incorrect.
Par défaut, FastAPI interprète les paramètres de fonction non inclus dans le chemin comme paramètres de requête. Cependant, pour les données JSON, vous devez les spécifier explicitement en utilisant l'une des méthodes suivantes :
Définir un modèle Pydantic pour représenter la structure de données JSON :
from pydantic import BaseModel class Item(BaseModel): eth_addr: str @app.post('/ethAddress') def add_eth_addr(item: Item): return item
Utilisez le type Body pour spécifier que le paramètre doit être analysé à partir du corps de la requête :
from fastapi import Body @app.post('/ethAddress') def add_eth_addr(eth_addr: str = Body()): return {'eth_addr': eth_addr}
Pour un seul paramètre de corps, vous pouvez utiliser l'argument embed=True pour analyser automatiquement les données du corps de la requête :
from fastapi import Body @app.post('/ethAddress') def add_eth_addr(eth_addr: str = Body(embed=True)): return {'eth_addr': eth_addr}
Lorsque vous utilisez l'API Fetch en JavaScript pour envoyer des données JSON, vous devez définir l'en-tête Content-Type sur application/json et spécifier les données dans le corps field :
fetch("http://localhost:8000/ethAddress", { method: "POST", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ "eth_addr": "some address" }), });
Pour plus d'informations et des exemples détaillés, reportez-vous à la documentation et aux ressources suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!