Maison > développement back-end > Tutoriel Python > Comment envoyer des données JSON d'un front-end JavaScript vers un back-end FastAPI ?

Comment envoyer des données JSON d'un front-end JavaScript vers un back-end FastAPI ?

DDD
Libérer: 2024-11-10 14:05:03
original
447 Les gens l'ont consulté

How to Send JSON Data from a JavaScript Front-End to a FastAPI Back-End?

Envoi de données JSON du Front-End JavaScript vers le Back-End FastAPI

Dans FastAPI, les paramètres déclarés dans une fonction sans faire partie des paramètres de chemin sont automatiquement interprétés comme une requête paramètres. Cette interprétation diffère de la pratique courante consistant à transmettre des données JSON dans un corps de requête.

Pour résoudre cet écart, il existe plusieurs options :

Utiliser le modèle Pydantic

Créer un modèle Pydantic modèle pour définir le corps JSON attendu :

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

API JavaScript Fetch :

headers: {
  Accept: "application/json",
  "Content-Type": "application/json",
},
body: JSON.stringify({ eth_addr: "some addr" }),
Copier après la connexion
Copier après la connexion

Utilisation du paramètre Body

Utilisez Body= avec un type :

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

API JavaScript Fetch :

headers: {
  Accept: "application/json",
  "Content-Type": "application/json",
},
body: JSON.stringify("some addr"),
Copier après la connexion

Utilisation du paramètre d'intégration du corps

Simplifiez les paramètres de corps uniquement à l'aide de embed=True :

@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 :

headers: {
  Accept: "application/json",
  "Content-Type": "application/json",
},
body: JSON.stringify({ eth_addr: "some addr" }),
Copier après la connexion
Copier après la connexion

Pour plus de détails et des exemples avec JavaScript, reportez-vous à :

  • https://fastapi.tiangolo.com/advanced/requestBody/
  • https://fastapi.tiangolo.com/tutorial/body-forms/#formencoded-or-raw-body-few-parameters
  • https://stackoverflow.com/questions/55333220/fastapi-validation- for-payload-when-using-body

N'oubliez pas que l'utilisation de paramètres de requête n'est pas l'approche typique pour les données de corps JSON dans les API Web. Ajustez votre code en conséquence pour correspondre à ces options.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal