Maison > développement back-end > Tutoriel Python > Comment gérer les erreurs lors de l'envoi de données JSON de JavaScript vers FastAPI ?

Comment gérer les erreurs lors de l'envoi de données JSON de JavaScript vers FastAPI ?

Mary-Kate Olsen
Libérer: 2024-11-13 16:53:03
original
900 Les gens l'ont consulté

How to Handle Errors When Sending JSON Data from JavaScript to 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.

Paramètres de requête par rapport aux paramètres JSON

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 :

1. Modèle Pydantic :

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
Copier après la connexion

2. Type de corps :

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}
Copier après la connexion

3. Body Embed :

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}
Copier après la connexion

API JavaScript Fetch

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"
  }),
});
Copier après la connexion

Ressources supplémentaires

Pour plus d'informations et des exemples détaillés, reportez-vous à la documentation et aux ressources suivantes :

  • [FastAPI JSON Request and Response] (https://fastapi.tiangolo.com/tutorial/body/)
  • [Envoi de données JSON avec des requêtes POST dans JavaScript](https://stackoverflow.com/questions/44832885/sending-json-data-with-post-requests-in-javascript)
  • [Requête POST avec contenu JSON en JavaScript à l'aide de Fetch API](https://stackoverflow.com/questions/55749929/post-request-with-json-content-in-javascript-using-fetch-api)

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal