Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menyiarkan Data JSON ke FastAPI Tanpa UI Swagger?

Bagaimana untuk Menyiarkan Data JSON ke FastAPI Tanpa UI Swagger?

Patricia Arquette
Patricia Arquetteasal
2024-10-24 05:26:02875semak imbas

How to Post JSON Data to FastAPI Without Swagger UI?

Menyiarkan Data JSON ke FastAPI Tanpa Swagger UI

Apabila bekerja dengan FastAPI, adalah berguna untuk memahami cara menyiarkan data JSON ke bahagian belakangnya tanpa bergantung pada Swagger UI. Pendekatan ini membenarkan penyiaran terus data melalui URL yang ditentukan dan mendapatkan semula hasil dalam penyemak imbas.

Menggunakan Antara Muka Javascript

Untuk mencapai matlamat ini, anda boleh melaksanakan Antara muka Javascript seperti Fetch API, yang membolehkan penyerahan data dalam format JSON. Pertimbangkan contoh kod berikut:

<code class="javascript">body: JSON.stringify({name: "foo", roll: 1})</code>

Coretan kod ini menukar objek Javascript kepada JSON untuk penghantaran.

Pelaksanaan Depan

Untuk berinteraksi dengan bahagian belakang FastAPI, anda boleh memanfaatkan salah satu daripada kaedah berikut:

  • Jinja2Templates: Teknik ini melibatkan pemaparan templat HTML/JS yang termasuk borang untuk menyerahkan data. Data borang kemudiannya boleh ditukar kepada JSON.
  • Penyiaran JSON Terus: Menggunakan API Ambil, anda boleh menyiarkan data JSON terus tanpa melibatkan borang.

Contoh Pelaksanaan

Pertimbangkan contoh pelaksanaan berikut dalam 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>

Dengan mengikut langkah ini, anda boleh menyiarkan data JSON dengan berkesan ke hujung belakang FastAPI tanpa memerlukan UI Swagger. Pendekatan ini membolehkan lebih fleksibiliti dan interaksi langsung dengan bahagian belakang melalui URL yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Menyiarkan Data JSON ke FastAPI Tanpa UI Swagger?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn