FastAPIとは?特徴や使い方などPythonのフレームワークを解説

「FastAPI」は、PythonのWebアプリ、API開発のフレームワークとして近年注目度を高めているため、

・FastAPIでできることを具体的に知りたい
・FastAPIの使い方が知りたい

と考える方は多いのではないでしょうか。そこでこの記事では、

・FastAPIの概要
・特徴や機能
・使用手順

についてわかりやすく解説します。

FastAPIとは:Pythonでアプリ開発するためのフレームワーク

FastAPI(ファストエーピーアイ)は、Python3.6以降で利用できるWebフレームワークです。公式サイトでは「APIを構築するためのモダンで高速(高パフォーマンス)なWebフレームワーク」と紹介されています。

FastAPIは直感的に操作できるように設計されており、シンプルなコードで開発を進められます。

詳しくは後述の「FastAPIの機能」で解説しますが、APIドキュメントの自動生成や、型ヒントを用いた効率的な開発が可能です。また、比較的新しいフレームワークですが、公式の日本語ドキュメントが充実しており、初心者でも理解しやすい点も魅力の一つです。

Pythonについては「Python(パイソン)とは?人気プログラミング言語の特徴・活用事例を解説!」、APIについては「Web開発に役立つAPI連携とは?利用するメリットや実装手順を紹介」で詳しく解説しているので、併せてご覧ください。

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

FastAPIの特徴

FastAPIの主な特徴は次の3点です。

  • 直感的に操作できる:設計がシンプルで初心者でも操作しやすい
  • 動作が早い:軽量でPythonフレームワークのなかでも高速に動作する
  • バグを減らせる:カスタムデータ検証をサポートし、人為的なバグを削減できる

また、FastAPIは新しいフレームワークであり、最新のASGI(Asynchronous Server Gateway Interface)をベースにしている点も注目のポイントです。

PythonのWebフレームワークは、FastAPIのほかにもDjangoやFlaskが有名であり、特にDjangoはFastAPIと同じくAPI開発で利用されます。

Djangoについては「Django(ジャンゴ)とは?Pythonのフレームワークを活用し、Web開発に役立てよう」、Flaskについては「【Flask入門】Python初心者でもわかるフレームワークを解説!」で解説していますので併せてご覧ください。

FastAPIの機能

FastAPIの注目機能は次の3つです。

これらの機能について、一つずつ見ていきましょう。

ドキュメントが自動生成される

FastAPIでコードを実行すると、OpenAPI標準に準拠したドキュメントが自動生成されます。そのため、APIの仕様や挙動を手動で記載する必要がなく、より開発に注力することが可能です。

ドキュメント内には、エンドポイント、応答、パラメータ、リターンコードなどの詳しい情報が自動的に記載されます。自動生成されたドキュメントは、対話形式でデータの取得や追加などが実施でき、デバッグの際や動作確認の際に役に立ちます。

実際にドキュメントからAPIを操作する手順は、後述の「FastAPIの使用手順」で解説します。

型ヒントを含められる

型ヒントとは、Pythonの変数や関数の引数、戻り値などに型情報を付与する機能です。

Python3.5から公式にサポートされるようになった機能であり、コードの可読性や安全性を向上させ、バグなどの早期発見に役立ちます。前述のドキュメントの自動生成にも型ヒントが活用されています。

型ヒントをもとにAPIの「バリデーション」や「シリアライゼーション」が可能です。バリデーションとは、データが特定の条件や制約を満たしているかをチェックすることを、シリアライゼーションは、オブジェクトをファイルや通信に適した形式に変換することを指します。

非同期処理ができる

FastAPIは、Pythonの非同期処理機能を最大限に活用できるWebフレームワークです。非同期処理とは、複数の処理を同時に実行してプログラムの効率と速度を向上させる処理方法を表します。

Pythonでは通常コードの上から順に実行され、前段の処理が終わってから次の処理を行います。しかし、非同期処理では、前段の処理の完了を待たずに次の処理を開始することが可能です。

この機能によってプロセスの実行時間を軽減したり、多くのジョブを実行したりできるようになります。

PC作業のイメージ

FastAPIの使用手順

FastAPIを利用するまでの手順を解説します。流れは次のとおりです。

  1. 動作環境を構築する(仮想環境)
  2. FastAPIをインストールする
  3. FastAPIのプログラムを実行する
  4. 動作確認する

前提として、Python3.6以降がインストールされているものとします。Pythonのインストールがまだの場合は、「Pythonのインストール方法は?Windows・Macをそれぞれ解説」を参考にインストールを進めてください。

以降の手順は、Windows11/Python3.10の環境下での手順です。

動作環境を構築する

はじめに、venvを使ってFastAPI用の仮想環境を構築します。ここでは、「c:\code\fastpi-test」に仮想環境を作っていきます。

仮想環境用のディレクトリが作成できたら、移動して仮想環境を有効化します。

以下のように、仮想環境の名前が表示されていることを確認してください。

「FastAPI」仮想環境の名前が表示

現時点では必要最低限のパッケージしかインストールされていません。

FastAPIをインストールする

FastAPIのセットアップは非常に簡単です。仮想環境が有効化されている状態で、次のコマンドを入力してFastAPIをインストールします。

pip install fastapi

FastAPIと関連するパッケージがインストールされたことを確認します。

「FastAPI」FastAPIと関連するパッケージがインストールされた

併せて、軽量で高速なASGIサーバーである「uvicorn」もインストールします。

pip install “uvicorn[standard]”

こちらも同様に「pip list」コマンドでインストールされたことを確認しておきます。

「FastAPI」インストールされたことの確認

FastAPIのプログラムを実行する

次にFastAPIで実行するプログラムを作成しましょう。今回は、ユーザー情報を管理するAPIを例として利用します。以下のコードをコピー&ペーストし、「main.py」として保存してください。

こちらの内容については、自動生成されたドキュメントを見るとわかりやすいと思いますので、動作確認の内容と併せて確認することをおすすめします。

コードを保存したら、次のコマンドでWebサーバーを立ち上げます。

uvicorn main:app –reload

「–reload」オプションは、コードが変更された際に自動的に再起動するオプションです。開発時に便利なオプションであるため覚えておきましょう。

「Application startup complete.」と表示されたら準備完了です。

「FastAPI」Application startup complete.で準備完了

動作確認する

まずは自動生成されたドキュメントを確認してみましょう。ブラウザで「http://localhost:8000/docs」にアクセスします。

ドキュメントを見ると、このAPIはGETとPOSTの2種類が存在していることがわかります。

「FastAPI」2種類のAPI確認

GETでは{user_id}に紐づいた情報をリターンコード200、JSON形式で出力することがわかりますね。

また、{user_id}がint型以外の場合はバリデーションエラーとして、リターンコード422、エラー内容をJSON形式で出力するものだとわかります。

「FastAPI」出力形式の確認

実際にこの画面からユーザー情報を取得していましょう。はじめに左上の「Try it out」ボタンをクリックします。

「FastAPI」ユーザー情報の取得

「user_id」に「1」を入力し、「Execute」ボタンをクリックします。

「FastAPI」ユーザー情報取得を実行

user_idが1の情報が取得でき、その内容がJSON形式で出力されています。

「FastAPI」取得した情報の出力

もちろん、直接ブラウザで「http://localhost:8000/users/1」を実行しても同様の結果が確認できます。

「FastAPI」ブラウザで確認

今回の例では、「user_id」は「1」と「2」の2人分の情報だけがコードに記載されています。エラー時の処理についても記載されているため、いろいろと数値を変えて試してみると理解が深まるでしょう。

次に、POST側も試してみましょう。コードにはuser_idが3の情報は記載されていないため、直接アクセスしてもデータは確認できません。

「FastAPI」直接アクセスしてもデータは確認できない

GETのときと同様にドキュメントからuser_idが3の情報を追加してみます。

「FastAPI」ユーザーの追加

APIが実行され、情報が追加されたことがわかります。

「FastAPI」API実行結果

URLを直接入力してもデータが追加されたことが確認できますね。

「FastAPI」ブラウザ上でも確認できるように

追加したデータは保存する作りになっていないため、サーバーを再起動すると削除されます。

FastAPIを活用してAPIを迅速かつ効率的に開発しよう!

FastAPIはPythonのWebフレームワークとして有名なDjangoやFlaskよりも新しいWebフレームワークです。WebアプリやAPI開発に利用されるフレームワークとして注目を集めています。

FastAPIは直感的に操作でき、動作が早くバグが減らせるという特徴があり、ドキュメントの自動生成という強力な機能も持っています。公式の日本語ドキュメントが充実していることからも、今後はPythonにおけるWebフレームワークの中心的な存在になるかもしれません。

この記事では、FastAPIのかんたんな実装から使い方を解説しましたが、より本格的に学びたい場合にはUdemyの動画講座がおすすめです。

現代的な開発手法を身につけたい方には、以下の講座がおすすめです。

Udemyおすすめ講座

PythonからFastAPIまで【初心者向け講座】モダンなAPIサーバを構築してみよう【わかりやすさ重視】

PythonからFastAPIまで【初心者向け講座】モダンなAPIサーバを構築してみよう【わかりやすさ重視】

4.5(17 件の評価)

297 人の受験生

作成者: 世界のアオキ (Akihiro Aoki)(生成AI術師/システムエンジニア/キュレーター/Webマーケッター)

Python初歩からFastAPIまでを繋ぐように網羅しています。多次元の辞書型、パッケージ、クラスの初歩から、Pydanticを使った型ヒント、非同期処理、キュメント自動生成など現代的な開発方法を体験することができます。

\無料でプレビューをチェック!/

講座を見てみる

評価:★★★★
コメント:FAST APIについての概要や使い方がわかりやすくて大変参考になりました。本講座の動画を参照しながら、FAST APIを学習していきたいと思います。

評価:★★★★
コメント:簡潔な説明でわかりやすかった。

FastAPIを活用してAPIサーバーを構築するスキルを身につけましょう。