JSON-Daten ohne Swagger-Benutzeroberfläche an FastAPI senden
Bei der Arbeit mit FastAPI ist es hilfreich zu verstehen, wie JSON-Daten ohne Swagger an das Backend gesendet werden Verlassen Sie sich auf die Swagger-Benutzeroberfläche. Dieser Ansatz ermöglicht die direkte Veröffentlichung von Daten über eine angegebene URL und den Abruf der Ergebnisse im Browser.
Verwendung einer Javascript-Schnittstelle
Um dies zu erreichen, können Sie a implementieren Javascript-Schnittstelle wie Fetch API, die die Übermittlung von Daten im JSON-Format ermöglicht. Betrachten Sie das folgende Codebeispiel:
<code class="javascript">body: JSON.stringify({name: "foo", roll: 1})</code>
Dieses Code-Snippet konvertiert das Javascript-Objekt zur Übertragung in JSON.
Frontend-Implementierung
Zur Interaktion Mit dem FastAPI-Backend können Sie eine der folgenden Methoden nutzen:
Beispielimplementierung
Betrachten Sie die folgende Beispielimplementierung in 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>
Indem Sie diese Schritte befolgen, können Sie JSON-Daten effektiv in einem FastAPI-Backend veröffentlichen, ohne dass die Swagger-Benutzeroberfläche erforderlich ist. Dieser Ansatz ermöglicht eine größere Flexibilität und direkte Interaktion mit dem Backend über die angegebene URL.
Das obige ist der detaillierte Inhalt vonWie poste ich JSON-Daten ohne Swagger-Benutzeroberfläche an FastAPI?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!