広告 FastAPI Python プログラミング

Python 高速なWebフレームワーク”FastAPI”を導入しよう!

2022-02-25

FastAPIは、Pythonの標準である型ヒントに基づいてPython 3.6以降でAPI を構築するための、モダンで、高パフォーマンスなWebフレームワークです。

現状、PythonのWebフレームワークとしてはFlaskが使用されるケースが多い印象ですが、FastAPIも近年勢いよく注目を浴びていることも事実です。

Flaskとコードの書き方も似ている部分が多いため、開発環境によっては移行するのを検討してみても良いかもしれません。

以下に、特徴をまとめてみました。

特徴

  • Flaskの上位互換
  • 対話型のAPIドキュメントを自動生成
  • 高速、簡単、直感的に扱える
  • 非同期処理を実現
  • 型ヒントを使ったバリデーション

など、多くの優れた側面があります。

この記事では実際にFastAPIをインストールして、動作させる手順を紹介しています。

こちらもCHECK

Pythonのisortインストール手順。VSCodeで保存するときにimport文を自動整列させる

Pythonでプログラムを実装する際に、モジュールを使用するにあたって最初にimport文を書く。 実は、このimport文にはPEP8に基づいて、正しい順序が定められているのはご存じだろうか? あま ...

続きを見る

インストール

はじめに、『 fastapi』と『uvicorn』をインストールします。

パッケージ管理ツールにpipを使用している場合は以下のコマンドでインストールができます。

pip install fastapi
pip install uvicorn

まとめてインストールする場合はスペース区切りで複数指定しましょう。

pip install fastapi uvicorn

poetryを使用している場合は以下のコマンドでインストールができます。

poetry add fastapi
poetry add uvicorn

こちらもCHECK

Poetryのインストール・導入手順を解説!Pythonのパッケージ管理と仮想環境作成

Pythonのパッケージ管理ツールは一般的に『pip』が使われることが多いだろう。 pip freeze でインストールされたパッケージの情報を出力し、requirements.txt にて管理する。 ...

続きを見る

main.pyを作成

main.pyを作成し、以下のコードを入力します。

from fastapi import FastAPI

app = FastAPI()


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

サーバーの起動

uvicornコマンドでサーバーを起動します。

uvicorn main:app --reload

以下のような表示が確認できると、正常にサーバーが起動しています。

$ uvicorn main:app --reload
INFO:     Will watch for changes in these directories: ['/Users/hoge-development/backend/app']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [20770] using statreload
INFO:     Started server process [20772]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

サーバーは [Ctrl] + [Z] にて停止することが可能です。

備考

uvicorn main:app --reload について

  • mainは、main.pyを指しています。
  • appは、main.pyで生成されるオブジェクト(app = FastAPI())を指しています。
  • --reloadは、コードの変更時にサーバーを再起動させます。コードを変更すると、再起動する動作を確認できます。

動作確認

Google Cromeなどのブラウザから、http://127.0.0.1:8000 (ローカルホストの8000番ポート)にアクセスしましょう。

main.pyで定義したメッセージが表示されていることを確認できます。

{"message": "Hello World"}

ドキュメントの生成(Swagger UI)

FastAPIの優れた特徴の一つでもある、対話型APIドキュメント(Swagger UI)の生成です。

http://127.0.0.1:8000/docs にアクセスしてみましょう。

以下のような画面が表示されます。

青色部分の [GET] / Root をクリックすると、詳細な情報が表示されます。

この画面では、”Rootパス( / )にアクセス(GET)したときの動作”を対話的に見ることができます。

つまり、”main.pyで作成した@app.get("/")以下の関数の処理”を確認することができるということです。

作成したAPIの動作確認やテストをしたいときに、自動でこのドキュメントが生成されるのは非常に便利です。

GET: HTTPリクエストメソッドの一つで、データの読み取り(情報の取得)として使用される。

ドキュメントの操作(Swagger UI)

はじめに、右上にある [Try it out] をクリックします。

次に、[Execute] をクリックすると、リクエストが送られます。

すると、レスポンスが返ってきます。

成功すると200と表示され、main.pyで定義したメッセージがドキュメントからも表示されることが確認できます。

このようにUI画面から直感的に動作を確認することが可能です。

まとめ

以上で、FastAPIの概要をはじめ、インストール手順と動作確認、ドキュメントの生成・操作を解説しました。

非常に直感的に扱いやすく、便利な機能を兼ね備えているので、これを機に導入を検討してみてください。

本サイトでは、Pythonに関する情報などプログラミングに関する記事を多く公開しています。

気になる方は、合わせてご覧ください。

最後まで目を通していただき、ありがとうございました。

-FastAPI, Python, プログラミング