1. はじめに|FastAPIってなに?なぜ人気なの?
こんにちは!
この記事では、PythonでWebアプリやAPIを作るときにとっても便利な「FastAPI(ファストエーピーアイ)」というフレームワークについて紹介していきます。
💡 FastAPIってなに?
FastAPIは、PythonでWeb APIをすばやく作ることができるフレームワークです。
「フレームワーク」とは、アプリやシステムを作るときに役立つ“土台”や“便利ツール集”のようなものです。
たとえば、以下のようなことが簡単にできます:
- ブラウザからアクセスしてデータを取得する「API」を作る
- ユーザーからのリクエストを受け取って返事を返す
- 入力内容が正しいかを自動でチェックしてくれる
- 作ったAPIの説明ページ(ドキュメント)も自動でつくってくれる
こういったことが、びっくりするほど少ないコード量でできるのがFastAPIのスゴイところです。
🚀 なぜFastAPIが人気なの?
FastAPIがいま注目されている理由は、主に次の4つです:
- とにかく速い!(Fast)
名前のとおり、FastAPIは処理速度がとても速くて、実はFlaskなどの他のフレームワークよりも高性能だと言われています。 - コードが少なくてすむ
Pythonの「型ヒント」を使って、わかりやすく、ミスの少ないコードが書けます。
はじめての人でも、あっという間にAPIを作れます。 - 自動でドキュメントができる
作ったAPIは、ブラウザで確認できる「Swagger UI」というページで確認できます。これがまたカッコいい! - 世界中で人気急上昇中
GoogleやNetflix、Uberなどの大企業も使っていて、信頼性もバッチリ。これからPythonでWeb開発を始めたい人にはぴったりです。
🎯 この記事でできるようになること
この記事では、FastAPIを使って、以下のような基本的な操作を実際に体験してもらいます:
- FastAPIのインストール
- はじめてのAPIを作る
- ブラウザでAPIを確認してみる
- よくある失敗例とその直し方
Pythonの基本文法がちょっとわかれば、誰でもすぐに試せる内容なので、気軽に読み進めてくださいね!
2. FastAPIの準備|インストールと開発環境
さあ、いよいよFastAPIを使っていく準備をしていきましょう!
Pythonがすでにインストールされている人なら、たった数分でFastAPIを動かせるようになりますよ。まだPythonが入っていない人は、こちらの記事を参考にしてみてください👇
👉 【Python入門1】WindowsでPythonを始めよう!IDLEのインストールと基本の使い方ガイド
🧪 ステップ①:Pythonが使えるか確認しよう
まずは、Pythonがちゃんと使える状態かチェックします。
以下のコマンドをターミナル(またはコマンドプロンプト)で入力してください:
python --version
もしくは、環境によっては:
python3 --version
と表示されるかもしれません。Python 3.10.13 などのバージョンが表示されればOKです!
🧼 ステップ②:仮想環境を作ろう(おすすめ)
仮想環境とは、Pythonの専用作業スペースのことです。
他のプロジェクトと混ざらないので、トラブルが起きにくくなります!
以下のコマンドで仮想環境を作ってみましょう:
python -m venv venv
次に、仮想環境を有効にします。
Windowsの場合:
venv\Scripts\activate
macOS/Linuxの場合:
source venv/bin/activate
成功すると、ターミナルの左側に (venv) と表示されるようになります!
🚀 ステップ③:FastAPIとuvicornをインストール!
最後に、FastAPI本体と、それを動かすための「uvicorn(ユビコーン)」というツールをインストールします。
pip install fastapi uvicorn

これで準備は完了です!🎉
次のステップでは、いよいよ「はじめてのFastAPIアプリ」を作っていきましょう!
3. はじめてのFastAPIアプリを作ろう
いよいよ、FastAPIを使った「最初のWebアプリ」を作ってみましょう!
このステップでは、たった数行のコードで「こんにちは!」と返してくれる簡単なAPIを作ります。難しい知識はまだ必要ありませんので、気楽にやってみてくださいね😊
📄 ステップ①:Pythonファイルを作ろう
まずは、作業用フォルダ(例:fastapi_app)の中に、以下のようなPythonファイルを作りましょう:
ファイル名:main.py
✏️ ステップ②:FastAPIアプリのコードを書こう
以下のコードを main.py にコピペして保存してください。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "こんにちは!FastAPIの世界へようこそ!"}
💡 解説:
FastAPI()でアプリ本体を作ります@app.get("/")は「ルートURLにアクセスしたら…」という意味returnの中にある{}は、返すデータ(JSON形式)
たったこれだけで、1つのAPIが完成しました!
🖥 ステップ③:アプリを起動してみよう!
ターミナルを開いて、main.py がある場所に移動して、次のコマンドを入力します:
uvicorn main:app --reload
💬 コマンドの意味:
main:ファイル名(main.py)app:FastAPIインスタンスの変数名(app = FastAPI()の部分)--reload:コードを保存すると自動で再起動してくれるオプション(開発に便利!)
🌐 ステップ④:ブラウザで確認しよう!
ターミナルに以下のような表示が出たら…
Uvicorn running on http://127.0.0.1:8000
そのURL(http://127.0.0.1:8000)を**ブラウザで開いてみてください**。
すると…
{"message":"こんにちは!FastAPIの世界へようこそ!"}
このような文字が表示されるはずです!これがあなたが作ったAPIの“返事”です!
✅ さらにスゴイ!自動ドキュメントを見てみよう
FastAPIには、自動でAPIの説明ページを作ってくれる機能があります。
ブラウザで以下のURLにアクセスしてみましょう:
- http://127.0.0.1:8000/docs ←これが有名な「Swagger UI」!
カッコいい画面が出てきて、あなたのAPIが確認できます。
これがFastAPIの最大の魅力のひとつです!
4. APIのエンドポイントを増やしてみよう
前のステップでは、1つのシンプルなAPI(ルート /)を作りましたね。
ここからは、「APIをもっと便利にする方法」=エンドポイントを増やす方法を解説していきます!
🧭 エンドポイントってなに?
「エンドポイント」とは、かんたんに言うとURLごとの入り口のことです。
たとえば:
/にアクセス → 「こんにちは!」と表示/items/1にアクセス → 「item_id: 1」と表示
こんなふうに、違うURLにアクセスすることで違う処理ができるのがAPIの特徴です。
🔁 パスパラメータ付きのエンドポイントを作ってみよう
新しく、IDを使ったルート /items/{item_id} を作ってみましょう。
コードを main.py に追加してください👇
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
💡 解説:
{item_id}の部分は変数のようなもの。アクセスしたときの数字がitem_idに入ります。item_id: intは「この値は整数だよ」と教えてあげる型ヒント。returnでその値を返しています。
🌐 動かしてみよう!
FastAPIアプリをまだ起動していない場合は、ターミナルで次のコマンドを実行します:
uvicorn main:app --reload
そのあと、ブラウザでこのURLを開いてみてください:
http://127.0.0.1:8000/items/42
結果はこのようになります:
{"item_id": 42}
ばっちりですね!
📦 クエリパラメータを使う例
次は、URLに「?」をつけて指定するクエリパラメータを使った例です。
以下のように書きます:
@app.get("/users/")
def read_user(name: str = "ゲスト"):
return {"message": f"こんにちは、{name}さん!"}
📌 アクセス方法:
http://127.0.0.1:8000/users/?name=たろう
結果:
{"message":"こんにちは、たろうさん!"}
※ name を指定しなければ「ゲストさん」になります!
✍ POSTメソッドの使い方も見てみよう!
ここまではすべて「GET」でしたが、次は「POST」メソッド(データを送る)も追加してみましょう。
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
@app.post("/items/")
def create_item(item: Item):
return {"message": f"{item.name} を登録しました(価格: {item.price}円)"}
Swagger UI(http://127.0.0.1:8000/docs)から試すことができます!
例:
{
"name": "りんご",
"price": 120.5
}
✅ まとめ
FastAPIでは、たった数行のコードでいろいろなエンドポイントが作れます:
/items/1のような パスパラメータ/users/?name=〜のような クエリパラメータPOSTを使った データ登録API
これらを組み合わせると、本格的なWebサービスも作れてしまうんです✨

次は、FastAPIの魅力である「Swagger UI」やAPIドキュメントの自動生成」について解説していきます!
5. Swagger UIでAPIを確認しよう
FastAPIのすごいところのひとつが、**「自動でAPIの説明ページ(ドキュメント)を作ってくれる機能」**です。
これを使えば、自分で作ったAPIがどんなものなのかをブラウザでかんたんに確認&テストできます!
しかも、専門的な設定は必要ありません。FastAPIなら、最初からこの機能がついています✨
📖 Swagger UIってなに?
Swagger UI(スワッガーユーアイ)とは、APIの仕様(どんなURLがあるのか、どんなデータを送れるのかなど)を見やすく表示してくれるWebページのことです。
FastAPIでアプリを起動すると、自動的にSwagger UIが生成されます!
🌐 Swagger UIを開いてみよう!
ターミナルでFastAPIアプリを起動している状態で、ブラウザから次のURLにアクセスしてみましょう:
http://127.0.0.1:8000/docs
すると、こんな感じの画面が表示されるはずです👇
- 青い「GET」や「POST」のボタンがある
- エンドポイント(APIのURL)が一覧で見られる
- パラメータや戻り値の説明がついている
- 実際にデータを送信してAPIのテストができる!
🔍 「Try it out」でテストしてみよう!
GET /items/{item_id}をクリック- 「Try it out(試してみる)」を押す
item_idに好きな数字を入力(例:10)- 「Execute」をクリック!
すると、下のほうにレスポンス(APIの返事)が表示されます:
{
"item_id": 10
}
このように、ブラウザ上だけでAPIの動作確認ができるのはとっても便利ですね!
🧾 ReDocもあるよ!
実はもうひとつ、FastAPIは**ReDoc(リードック)**という別の見た目のドキュメントも用意してくれています。
こちらは以下のURLでアクセスできます:
http://127.0.0.1:8000/redoc
Swagger UIよりも読み物としての説明に特化していて、ドキュメントとして整っている印象です。どちらも無料で自動生成されるのがありがたいですね。
✅ まとめ
FastAPIでは、開発者向けの便利なドキュメントが自動で作られます:
http://127.0.0.1:8000/docs(Swagger UI):実際に動かして試せる!http://127.0.0.1:8000/redoc(ReDoc):読みやすく整理されたAPI説明ページ
コードを書いたらすぐに見て・試して・直せるので、開発スピードがグッと上がります。
6. 実用的な活用例|簡単なToDo APIを作る
ここまでFastAPIの基本を学んできたみなさん、お疲れさまです!
ここからは**「実際にどんなAPIが作れるのか?」**を体験していきましょう。
今回はシンプルな「ToDoリストAPI」を作ってみます!
🧾 ToDo APIでやりたいこと
このミニアプリでは、以下の3つの機能を作ります:
- 📋 現在のToDo一覧を取得(GET)
- ➕ 新しいToDoを追加(POST)
- ❌ 指定したToDoを削除(DELETE)
まだデータベースは使いません。Pythonのリスト(配列)だけで実現します!
💻 コード全体(コピペでOK)
main.py に、これまでの内容に追加・上書きする形で、以下のコードを入れてください👇
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
app = FastAPI()
# ToDoアイテムのデータモデル
class ToDoItem(BaseModel):
title: str
# データを保存するリスト(サーバーの中だけ)
todo_list = []
# 1. ToDo一覧を取得する
@app.get("/todos")
def get_todos():
return {"todos": todo_list}
# 2. 新しいToDoを追加する
@app.post("/todos")
def add_todo(item: ToDoItem):
todo_list.append(item)
return {"message": "追加しました!", "todo": item}
# 3. ToDoを削除する
@app.delete("/todos/{index}")
def delete_todo(index: int):
if index < 0 or index >= len(todo_list):
raise HTTPException(status_code=404, detail="その番号のToDoは見つかりません")
removed = todo_list.pop(index)
return {"message": "削除しました", "removed": removed}🌐 試してみよう(Swagger UI)
- アプリを起動していない人は以下のコマンドで起動: bashコピーする編集する
uvicorn main:app --reload - ブラウザで
http://127.0.0.1:8000/docsにアクセス!
試し方:
POST /todos:新しいToDoを追加 jsonコピーする編集する{ "title": "ブログ記事を書く" }GET /todos:今のToDo一覧を確認DELETE /todos/{index}:番号を指定して削除(0番目が最初)
✅ 補足ポイント
- データは「Pythonのリスト(配列)」に保存されます。
- このデータはサーバーを再起動すると消えます(=データベースは未使用)。
- 初心者でも「アプリっぽさ」を体験しやすい構成になっています!
7. よくあるエラーと対処法
FastAPIは使いやすいフレームワークですが、最初のうちはちょっとしたミスでエラーが出てしまうこともあります。
でも大丈夫!よくあるエラーとその直し方を知っておけば、怖くありません😊
ここでは、初心者がよく出会う3つのエラーとその解決方法を紹介します。
❌ エラー①:ModuleNotFoundError: No module named 'fastapi'
🔎 原因:
FastAPIやuvicornをインストールしていない、もしくは仮想環境を有効にしていない状態です。
✅ 対処法:
以下のコマンドをターミナルで実行して、もう一度インストールしましょう:
pip install fastapi uvicorn
仮想環境を使っている場合は、必ず有効にしてからインストール&実行してくださいね👇
- Windows:
venv\Scripts\activate - Mac/Linux:
source venv/bin/activate
❌ エラー②:AttributeError: module 'main' has no attribute 'app'
🔎 原因:
FastAPIの起動コマンドで指定している「main:app」のどちらかが間違っていることが多いです。
✅ 対処法:
以下を確認してください:
- ファイル名は
main.pyですか?(uvicorn main:appのmain部分) app = FastAPI()の変数名はappになっていますか?
修正後は、再度以下のコマンドで起動しましょう:
uvicorn main:app --reload
❌ エラー③:POSTリクエストで422 Unprocessable Entity
🔎 原因:
POSTで送ったデータの形式が間違っている場合に出ます。
たとえば、こんなコードがあるとします:
class Item(BaseModel):
name: str
price: float
そのときに、リクエストがこうなっていたらNGです:
{
"name": "ノートパソコン"
}
(← price が抜けている!)
✅ 対処法:
正しく送る必要があります。例えば:
{
"name": "ノートパソコン",
"price": 98000
}
Swagger UIでは「モデルの例」が表示されるので、そちらを参考にすると安心です。
🛠 それでもうまくいかないときは?
- エラーメッセージをよく読んでみましょう。行番号やヒントが書かれていることがあります。
- コピペミスがないか確認しましょう(カッコの閉じ忘れ、インデントなど)。
- わからないときは、
エラー名 Python FastAPIでGoogle検索すると多くの事例が出てきます。

ここまで読んでくださってありがとうございます!
FastAPIの基本的な使い方、エンドポイントの作成、Swagger UIの使い方、ToDo APIの作成、そしてエラー対応までバッチリ学べましたね🎉
🧭 あわせて読みたい
- 👉 Python初心者がFlaskでWebアプリを作る方法
- 👉 【中級者向け】PythonでChatGPT APIを使う完全ガイド
- 👉 【初心者向け】PythonでGoogleスプレッドシートを操作する基本
よくある質問(Q&A)
- QFastAPIは完全に無料ですか?
- A
はい、オープンソースなので誰でも無料で使えます!
- Q本番環境でもFastAPIを使えますか?
- A
もちろんです!大企業もFastAPIを使っています。ただし、本番では
uvicornにgunicornを組み合わせるのが一般的です。
- QFastAPIとFlaskの違いは?
- A
Flaskはシンプルで柔軟ですが、FastAPIは型ヒントやドキュメント機能が充実しています。どちらも人気ですが、FastAPIの方が最近のトレンドです。







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。