サイトアイコン たーちゃんの「ゼロよりはいくらかましな」

FastAPIさわってみる

以前まではFlaskというpythonのwebアプリケーションFWを使用してましたが、

どうやらFastAPIなるものが賑わっているみたい。

 

では、早速さわってみましょー。

 

 

 

動作環境&インストール

OS:windows10

python:3.8.2

 

FastAPIはASGIアプリケーションFWと称されるみたい。

ASGIはAsyncronous Server Gateway Interfaceの略で非同期web処理のpython規格。

これと似たものにWSGIがあり、これはWeb Server Gateway Interfaceの略で、

pythonのwebサーバとアプリケーションの通信規格。

 

ASGIはWSGIを後継した上で、非同期処理をしているそう。

 

また、FastAPIはそれ単体ではサーバ機能を含まないので、

webサーバと一緒に使用します。

 

 

今回はuvicornというASGIサーバを使用します。

WSGIのサーバは、Gunicornというのが有名みたい。

uvicornもGunicorn上で動作させることもできるみたいですが、

今回はuvicorn単体でやろうと思います。

 

 

インストール

インストールはサクッとpipで。

pip install fastapi
pip install uvicorn[standard]

※ uvicornはstandardをつけないと最小インストールになり

必要なライブラリがないことがあるみたいなので、つけておくのが無難。

 

 

Hello World!

なにわともあれ、Hello Worldしてみましょうー。

 

まずはsample.pyとして以下のように記述します。

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def hello():
    return {"message": "Hello World"}

 

 

そして以下のコマンドでサーバを起動。

uvicorn sample:app --reload

 

 

すると

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

 

こんなメッセージが出るはずなのでアクセス!

jsonが表示されていればOKです。

 

 

サーバ起動のコマンドにて、sample:appとなっている部分は

ファイル名: FastAPIのインスタンス変数名

となります。

 

 

起動させるまでが非常に簡単ですねー。

 

また、http://127.0.0.1:8000/docsにアクセスすると。。。

swaggerが自動生成されており、それを確認することができます。

↓ こんな感じです。いいですねー。

 

 

 

 

次回

FastAPIの基本的な使い方を1回で全部書くと

すごい量になりそうだったので分けようかなーと思いました。

 

 

ということで、次回はGet、Postにおける、

URLパラメータやrequest、responseのモデル定義方法、

validationの方法について書こうかなと思います。

 

 

それでは!!!

 

 

 


にほんブログ村


人気ブログランキング

モバイルバージョンを終了