Swagger UI を使用せずに JSON データを FastAPI バックエンドにポストする方法は?

Linda Hamilton
リリース: 2024-10-24 04:31:02
オリジナル
979 人が閲覧しました

How to Post JSON Data to a FastAPI Backend Without Swagger UI?

Swagger UI を使用せずに FastAPI バックエンドに JSON データを直接投稿する

FastAPI を使用すると、ユーザーは、Swagger UI を使用しなくても、JSON データをバックエンドに簡単に投稿できます。 Swagger UI によって提供される自動ドキュメント。この記事では、データをバックエンド URL に直接送信し、結果をブラウザーに表示する簡単なプロセスについて詳しく説明します。

FastAPI アプリケーションの作成

まず、基本的なアプリケーションを作成します。 POST オペレーションと JSON ペイロードを逆シリアル化するためのモデル クラスを備えた FastAPI アプリケーション:

<code class="python">from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    roll: int

app = FastAPI()

@app.post("/")
async def create_item(item: Item):
    return item</code>
ログイン後にコピー

JavaScript を使用したフロントエンドの実装

フロントエンドには、 Fetch API。JSON データをバックエンド URL に直接送信できます。

<code class="javascript">fetch('/', {
    method: 'POST',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({name: "XYZ", roll: 51})
})
.then(resp => resp.text())
.then(data => {
    console.log(data);  // Display the result in the browser
})
.catch(error => {
    console.error(error);
});</code>
ログイン後にコピー

このスクリプトでは、正しいヘッダーを指定してデータを JSON 文字列に変換する POST リクエストを作成します。サーバーの応答がブラウザに表示されます。

代替方法

FastAPI バックエンドにデータを送信するためのその他の方法には、次のようなものがあります。

  • フォーム データ: FormData クラスを使用してデータを送信するには、フォームベースのアプローチを使用します。
  • ファイルとフォーム/JSON データ: ファイルとフォーム/JSON データの組み合わせを利用します。より複雑なシナリオ用の JSON データ。

結論

Swagger UI を使用せずに FastAPI バックエンドに JSON データを投稿するのは、JavaScript を使用して送信する必要がある簡単なプロセスです。データをバックエンド URL に直接送信します。フォームベースのデータ送信であっても、ファイルとフォーム/JSON データの組み合わせであっても、ニーズに合わせてさまざまな方法から選択できます。

以上がSwagger UI を使用せずに JSON データを FastAPI バックエンドにポストする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!