Bagaimana untuk Menyiarkan Data JSON ke FastAPI Tanpa UI Swagger?

Patricia Arquette
Lepaskan: 2024-10-24 05:26:02
asal
778 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!