ホームページ  >  記事  >  バックエンド開発  >  Swagger UI を使用せずに JSON データを FastAPI に送信するにはどうすればよいですか?

Swagger UI を使用せずに JSON データを FastAPI に送信するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-24 02:25:29848ブラウズ

How to Submit JSON Data to FastAPI without Swagger UI?

FastAPI での JSON データ入力のための Swagger UI のバイパス

FastAPI を使用する場合、Swagger UI を仲介せずに JSON データを投稿できます。これを実現する方法は次のとおりです。

JSON データ送信用の JavaScript インターフェイス

Fetch API などの JavaScript ベースのインターフェイスを使用して、JSON 形式でデータを送信します。以下に例を示します。

<code class="javascript">var data = {
    name: "foo",
    roll: 1
}

fetch('/', {
    method: 'POST',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
}).then(resp => {
    return resp.text();
}).then(data => {
    // Handle the response
});</code>

HTML フォームと Jinja2 テンプレート

また、Jinja2 テンプレートと HTML フォームを利用してデータを送信することもできます。方法は次のとおりです:

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>

index.html

<code class="html"><form method="post">
    <input type="text" name="name" value="foo">
    <input type="number" name="roll" value="1">
    <input type="submit" value="Submit">
</form>

<div id="responseArea"></div>

<script>
    document.querySelector('form').addEventListener('submit', (event) => {
        event.preventDefault();
        var data = new FormData(event.target);

        fetch('/', {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(Object.fromEntries(data))
        }).then(resp => {
            return resp.text();
        }).then(data => {
            document.getElementById("responseArea").innerHTML = data;
        }).catch(error => {
            console.error(error);
        });
    });
</script></code>

これらの手法を使用すると、依存せずに JSON データを FastAPI バックエンドに簡単にポストできます。 Swagger UI インターフェイス上。

以上がSwagger UI を使用せずに JSON データを FastAPI に送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。