Maison >développement back-end >Tutoriel Python >Comment publier des données JSON sur FastAPI sans l'interface utilisateur Swagger ?
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>
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 :
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>
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>
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!