シンプルスタート!最小限の「Hello, World!」APIをFastAPIで動かす流れ
📋 記事のポイント(サマリー)
- 誰向け?
Pythonの基礎はあるけれど、WebフレームワークでのAPI動作を初めて体験したい初心者さん - 学べること
- 最小限のFastAPIプロジェクト構成
main.py
でのシンプルな「Hello, World!」エンドポイント実装- Uvicornによるサーバー起動方法
- curl/ブラウザでのレスポンス確認
- 自動生成ドキュメント(Swagger UI/ReDoc)の活用
- 得られる効果
- わずか数ファイル、数行のコードでAPIを動かし、開発体験の基礎をしっかり掴める
- FastAPIの手軽さと自動ドキュメントの便利さを実感し、次のステップへ踏み出せる
🎯 対象読者
- 学生エンジニアAさん(20代前半)
プロジェクト演習の課題でAPIを実装してみたいけど、何から手をつけていいか分からない方 - 社会人エンジニアBさん(30代)
既存のPythonツールをAPI化して、手早く試験運用をしてみたい方 - プチ自作アプリCさん(40代)
趣味プロジェクトで外部から叩ける簡単なエンドポイントを作ってみたい方
♿ アクセシビリティレベル
- 読みやすさ:短い段落と箇条書きで構造化し、漢字・ひらがな・カタカナのバランスを調整
- コード表示:見やすいフォント幅固定のブロックで示し、コメントも丁寧に記載
- ナビゲーション:各セクション末に要点まとめを入れ、スクリーンリーダー利用者にも優しい設計
- 用語説明:初出の専門用語には注釈を付け、かんたんに理解できるよう配慮
1. プロジェクトの準備とフォルダ構成
まずは作業用フォルダを用意しましょう。
mkdir fastapi-hello
cd fastapi-hello
- ポイント:フォルダ名は分かりやすく、英数字とハイフンで構成すると運用時も安心です。
仮想環境は既に用意できている前提ですが、まだの方は以下の一行で作成&有効化をどうぞ:
python3 -m venv .venv && source .venv/bin/activate
要点まとめ:
fastapi-hello/
フォルダを作る- 必要に応じて
.venv
で仮想環境を有効化
2. 最小限のコード:main.py
作成
次にプロジェクト直下に main.py
を作成し、以下の内容をコピペしましょう。
# main.py
from fastapi import FastAPI # FastAPIクラスをインポート
app = FastAPI() # アプリケーションインスタンスを生成
@app.get("/") # HTTP GETでルート("/")にアクセスが来たら以下の関数を呼び出し
async def read_root():
"""
シンプルなHello, World!を返すエンドポイントです。
"""
return {"message": "Hello, World!"}
- ポイント:
from fastapi import FastAPI
でフレームワーク本体を呼び出します。- デコレータ
@app.get("/")
でエンドポイントとHTTPメソッドを指定。 - 関数は
async def
にしておくと非同期処理の拡張がしやすいです。
要点まとめ:
FastAPI()
でアプリを作成@app.get("/")
でルーティング設定- レスポンスは辞書 (
dict
) で返すだけのシンプルさ
3. Uvicornでサーバーを起動
ASGIサーバー「Uvicorn」を使ってアプリを動かします。以下のコマンドを実行してください:
uvicorn main:app --reload
- main:app は
main.py
内のapp
オブジェクトを指しています。 - –reload オプションは開発時用で、コード編集後に自動再起動してくれる便利機能です。
起動に成功すると、ターミナルに以下のようなログが表示されます:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
要点まとめ:
uvicorn main:app --reload
で開発サーバーが立ち上がる- ログに表示されるURLに注目
4. レスポンス確認&自動ドキュメント活用
4.1 curlで確認
別ターミナルや同じウィンドウで以下を叩いてみましょう。
curl http://127.0.0.1:8000/
期待する出力:
{"message":"Hello, World!"}
4.2 ブラウザで確認
- ブラウザURL:http://127.0.0.1:8000/
→ JSON形式のレスポンスが表示されます。
4.3 Swagger UI/ReDoc
- Swagger UI:http://127.0.0.1:8000/docs
- ReDoc:http://127.0.0.1:8000/redoc
これらの画面でAPI仕様が自動生成され、リクエスト送信もその場で試せます。
要点まとめ:
- curl/ブラウザで動作確認
/docs
と/redoc
で自動ドキュメントを体験
5. まとめと次の一歩
本記事では、わずか数ステップで最小限の「Hello, World!」APIをFastAPIで動かす流れをご紹介しました。
- プロジェクトフォルダ準備
main.py
でエンドポイント実装- Uvicornでサーバー起動
- curl・ブラウザ・自動ドキュメントで動作確認
この流れをマスターしたら、次は…
- ルーティング拡張:パス/クエリパラメータを追加してみましょう。
- リクエストボディ:Pydanticモデルでデータ受け取りを強化。
- データ永続化:SQLAlchemyやTortoise ORMと組み合わせ、CRUD機能に挑戦。
ぜひこのシンプルAPIを踏み台に、FastAPIの世界を楽しく深掘りしてみてくださいね♡