FastAPI での JSON データ投稿のための Swagger UI のバイパス
Swagger UI (OpenAPI) は API エンドポイントをテストする便利な方法を提供しますが、必要なシナリオが存在する場合があります。 JSON データを使用せずに直接送信します。この記事では、JavaScript インターフェイスを使用して JSON データを FastAPI エンドポイントに投稿するためのソリューションを提供します。
これを実現するには、JSON 形式でデータを送信できる Fetch API を利用します。さらに、Jinja2Templates を使用してフロントエンドのテンプレートを作成します。
バックエンドの実装
app.py では、FastAPI アプリケーションは、Item モデルで POST リクエストを受け入れる / エンドポイントで定義されています。 .
<code class="python">from fastapi import FastAPI, Request, HTTPException from fastapi.templating import Jinja2Templates from pydantic import BaseModel class Item(BaseModel): name: str roll: int app = FastAPI() templates = Jinja2Templates(directory="templates") @app.post("/") async def create_item(item: Item): if item.name == "bad request": raise HTTPException(status_code=400, detail="Bad request.") return item @app.get("/") async def index(request: Request): return templates.TemplateResponse("index.html", {"request": request})</code>
フロントエンドの実装
index.html テンプレートでは、名前とロール データを入力するための HTML フォームが提供されます。 submitForm() 関数は、Fetch API を使用してデータを JSON として送信します。
<code class="html"> <h1 id="Post-JSON-Data">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()) .then(data => { document.getElementById("responseArea").innerHTML = data; }) .catch(error => { console.error(error); }); } </script> </code>
使用法
フロントエンドにアクセスするには、http://localhost:8080/ に移動します。フォームにデータを入力し、「送信」ボタンをクリックしてください。 / エンドポイントからの応答は、HTML の "responseArea" div に表示されます。
次に示すように、.catch() メソッドを使用すると、JavaScript コードでエンドポイントによってスローされた例外を処理できることに注意してください。例では。
以上がSwagger UI を使用せずに JSON データを FastAPI エンドポイントに送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
