FastAPIでPOSTメソッドを実行する


この記事はプロモーションを含みます。

API

FastAPIのSwagger UIとコマンドラインからPOSTメソッドを実行する方法を解説します。

はじめに

本記事では、以下のようなFastAPIのWEB画面である「Swagger UI」とコマンドラインからPOSTメソッドを実行する方法を説明します。

まだ、FastAPIの導入が出来ていない場合は、下記を参考に導入して下さい。

Swagger UIの基本的な使い方は以下で解説しています。

POSTメソッドの動作を定義する

まずは、どのようにAPIが動くかを定義するためのスクリプトを作成します。
今回は、結果が分かりやすいように「個数」×「単価」のような掛け算をする処理を実装してみます。

以下がスクリプトでファイル名は「main.py」としています。

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Cost(BaseModel):
	price: int
	num: int

@app.post("/Cost")
async def Cost(data: Cost):
	cost = data.price * data.num
	return {"cost": str(cost) + "円"}

上記スクリプトの配置やライブサーバーの起動については以下を参考にして下さい。

POSTメソッドを呼び出す

ここでは、POSTメソッドを呼び出す方法を説明しています。
パラメーターと想定結果は以下とします。

項目パラメーター
単価(パラメーター1)price100
個数(パラメーター2)num20
費用(想定結果)cost2000

コマンドラインから実行する

ここでは、コマンドラインでPOSTメソッドを呼び出す方法を説明します。

今回は、curlコマンドを使用します。
書式は以下の通りです。

curl -X POST http://ライブサーバーのIPアドレス:ポート番号/POSTメソッドのURL \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d 'パラメーター'

今回の場合は、下記のようになります。

curl -X POST http://localhost:8000/Cost \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"price": 100, "num": 20}'

上記のコマンドは見やすいように改行していますが、以下のように1行で記述しても問題ありません。

curl -X POST http://localhost:8000/Cost -H 'accept: application/json' -H 'Content-Type: application/json' -d '{"price": 100, "num": 20}'

では、コマンドを実行してみます。
想定通り「2000円」と表示されました。

[root@localhost work]# curl -X POST http://localhost:8000/Cost \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"price": 100, "num": 20}'
{"cost":"2000円"}[root@localhost work]#

Swagger UIから実行する

ここでは、Swagger UIでPOSTメソッドを呼び出す方法を説明します。

まずは、Swagger UIに接続し、今回呼び出すPOSTメソッドである「Cost」を開きます。
次に以下のようにパラメーター(画像赤枠)を設定します。
設定後は「Execute」をクリックします。

次は、POSTした結果を確認します。
以下のように、Response bodyに「2000円」と表示されていれば、正しく処理されています。

GETメソッドを呼び出す

本記事では、POSTメソッドについて解説しました。
GETメソッドについては、以下を参考にして下さい。

コメント

タイトルとURLをコピーしました