Comment publier des données JSON sur FastAPI sans l'interface utilisateur Swagger ?

Patricia Arquette
Libérer: 2024-10-24 05:26:02
original
778 Les gens l'ont consulté

How to Post JSON Data to FastAPI Without Swagger UI?

Publication de données JSON sur FastAPI sans l'interface utilisateur Swagger

Lorsque vous travaillez avec FastAPI, il est utile de comprendre comment publier des données JSON sur son backend sans en s'appuyant sur l'interface utilisateur Swagger. Cette approche permet la publication directe des données via une URL spécifiée et la récupération des résultats dans le navigateur.

À l'aide d'une interface Javascript

Pour y parvenir, vous pouvez implémenter un Interface Javascript telle que Fetch API, qui permet la soumission de données au format JSON. Prenons l'exemple de code suivant :

<code class="javascript">body: JSON.stringify({name: "foo", roll: 1})</code>
Copier après la connexion

Cet extrait de code convertit l'objet Javascript en JSON pour la transmission.

Implémentation du frontend

Pour interagir avec le backend FastAPI, vous pouvez exploiter l'une des méthodes suivantes :

  • Jinja2Templates : Cette technique implique le rendu d'un modèle HTML/JS qui comprend un formulaire pour soumettre des données. Les données du formulaire peuvent ensuite être converties en JSON.
  • Publication JSON directe : à l'aide de l'API Fetch, vous pouvez publier directement des données JSON sans impliquer de formulaire.

Exemple d'implémentation

Considérez l'exemple d'implémentation suivant en Python :

app.py

<code class="python">from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
from pydantic import BaseModel

app = FastAPI()
templates = Jinja2Templates(directory="templates")

class Item(BaseModel):
    name: str
    roll: int
    
@app.post("/")
async def create_item(item: Item):
    return item

@app.get("/")
async def index(request: Request):
    return templates.TemplateResponse("index.html", {"request": request})</code>
Copier après la connexion

templates/index.html

<code class="html"><!DOCTYPE html>
<html>
   <body>
      <h1>Post JSON Data</h1>
      <form method="post" id="myForm">
         name : <input type="text" name="name" value="foo">
         roll : <input type="number" name="roll" value="1">
         <input type="button" value="Submit" onclick="submitForm()">
      </form>
      <div id="responseArea"></div>
      <script>
         function submitForm() {
             var formElement = document.getElementById('myForm');
             var data = new FormData(formElement);
             fetch('/', {
                   method: 'POST',
                   headers: {
                     'Accept': 'application/json',
                     'Content-Type': 'application/json'
                 },
                   body: JSON.stringify(Object.fromEntries(data))
                 })
                 .then(resp => resp.text())  // or, resp.json(), etc.
                 .then(data => {
                   document.getElementById("responseArea").innerHTML = data;
                 })
                 .catch(error => {
                   console.error(error);
                 });
         }
      </script>
   </body>
</html></code>
Copier après la connexion

En suivant ces étapes, vous pouvez publier efficacement des données JSON sur un backend FastAPI sans avoir besoin de l'interface utilisateur Swagger. Cette approche permet une plus grande flexibilité et une interaction directe avec le backend via l'URL spécifiée.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!