FastAPIとは?PythonのWebフレームワークでWebAPIを開発しよう!

FastAPIとは

FastAPI(読み方:ファストえーぴーあい)とは、Python3.6以降でAPIを構築するためのWebフレームワークです。PythonでWebアプリ開発やAPI開発をする際に利用することになります。Pythonの人気なWebフレームワークにはFlaskやDjangoなどが挙げられますが、近年ではFastAPIが非常に使いやすい事からも注目されています。日本語のドキュメントが充実しているため、公式の日本語ドキュメントを一通り読み込むことである程度使えてしまいます。

https://fastapi.tiangolo.com/ja/

このサイトは、Pythonや生成AIなどを学べるオンラインプログラミングスクール AI Academy Bootcampが運営しています。

FastAPIの特徴

FastAPIの特徴はいくつか挙げられますが、直感的に理解しやすく、3つに絞るとしたら以下3つを挙げる事が出来ます。 

①公式ドキュメンテーション(日本語)が充実している

②ドキュメントを自動で生成する機能が備わっている

③直感的にコードが書け、簡単に利用できる

FastAPIインストール

pipコマンドでfastapiとuvicornをインストールします。uvicorn(ユーブイアイコーン)とは、ASGI(Asynchronous Server Gateway Interface)と呼ばれるPythonのWebサーバとWebアプリケーションが通信するためのWSGI(Web Server Gateway Interface)の後継のインターフェース定義の事です。今の段階では詳細を理解する必要がありません。気になった方のみ、各々調べてみてください。

pip install fastapi uvicorn

FastAPIのプログラムを作成する

fastapiとuvicornのインストールが終わったら、早速FastAPIのプログラムを作成してみましょう。お使いのエディタを開いて、下記のプログラムを記述し、「main.py」というファイル名で保存してください。

from fastapi import FastAPI
app = FastAPI()

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

1行目ではFastAPIを読み込んでいます。2行目では読み込んだFastAPIのインスタンスを作成しています。ここで作成したappオブジェクトを用いて、get()などのメソッドを呼び出していきます。4行目では@appという記述を用いて、get()メソッドを呼び出しています。@デコレーターと呼ばれ、関数を受け取り、関数を戻り値とする関数のことです。FastAPIやFlaskでは@を記述したプログラムを書きますため、慣れるようにしておくと良いでしょう。5行目・6行目ではhello()を定義しています。関数の先頭に記述されているasyncは、非同期処理を実現するための記述です。非同期処理とは、あるタスクを実行している最中に、実行中のタスクを止める事なく、他の新しいタスクが実行できる処理のことを指します。returnで返却された辞書型はJSON(JavaScript Object Notation)形式で返されます。

FastAPIを起動する

main.py」を保存したら、FastAPIを起動してみましょう。下記のコマンドをターミナル等から実行します。この時、「main.py」が保存されている同じパス(PATH)に移動していることを確認してください。※PATH(パス)とはコンピュータ内で特定のファイル等が存在することを表す文字列のことOSモジュールによるファイルの操作

uvicorn main:app --reload

問題を報告する上記コマンドは、先ほど作成した「main.py」のappを起動するという意味のコマンドになります。 – uvicorn main:appは以下を示します。- mainmain.pyファイル- appmain.py内部で作られるオブジェクトです。(app = FastAPI()のように記述されます)- -reload: コードの変更時にサーバーを再起動させます。(※開発用) その後、Webブラウザに「http://127.0.0.1:8000」と入力すると、以下のような画面になればうまく実行出来ています。

🎁ちょっとひと息 ! 業務や学習に役立つライブラリーをプレゼント !

オンラインプログラミングスクールのAI Academy Bootcamp LINE公式のライブラリーでは無料動画、講座、最新技術資料など、学習や業務に役立つ秀逸な教材や実践的なリソースを豊富に取り揃えています!毎週新しいコンテンツも更新中です。LINE友だち登録でプレゼントします。ぜひご活用ください!

LINE Libraryで人気 の🎁です。

【プロンプトを自動生成するGPTs生成AIを活用してFastAPIをもっと効率よく使いこなしませんか?このGPTsを使えば、『トピックに基づくブログ記事生成』や『質問応答API用のプロンプト』 といった実用的なプロンプトを簡単に作成できます。

AI Academy Bootcamp ではAI・データサイエンス、機械学習の実践力を高める全4コース40時間以上の動画が見放題!AIの学習に必須のPythonの学習から始まり、データサイエンス・機械学習など、目的に応じた幅広い分野をカバーしています。

オススメ記事