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) | price | 100 |
個数(パラメーター2) | num | 20 |
費用(想定結果) | cost | 2000 |
コマンドラインから実行する
ここでは、コマンドラインで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}'
では、コマンドを実行してみます。
想定通り「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メソッドについては、以下を参考にして下さい。
コメント