【Python】FastAPIの概要


1. はじめに

FastAPIは、Python製の高速でモダンなWebフレームワークです。特にAPIの開発に焦点を当てており、使いやすさとパフォーマンスの高さが特徴です。このブログ記事では、FastAPIの主要な特徴とその利点について紹介します。

2. FastAPIとは?

FastAPIは、PydanticとStarletteをベースにしたWebフレームワークです。以下の点で注目されています:

  • 高速: ASGI(Asynchronous Server Gateway Interface)を使用しているため、非常に高速です。
  • 簡単: 開発者の生産性を向上させる直感的なAPI設計が可能です。
  • 型ヒントの活用: Pythonの型ヒントをフルに活用し、より良い開発体験を提供します。
  • 自動生成されたドキュメント: OpenAPIとJSON Schemaに基づいた自動生成ドキュメントを提供します。

3. FastAPIの特徴

  1. 高速なパフォーマンス
    FastAPIは、NodeJSやGoのフレームワークと同等のパフォーマンスを誇ります。非同期処理に対応しており、リクエストの処理速度が非常に高速です。
  2. 簡単な開発
    FastAPIは、Pythonの型ヒントを利用することで、開発者が少ないコードで多くのことを実現できるように設計されています。これにより、開発速度が向上し、バグの発生率も低減します。
  3. 自動化されたドキュメント
    FastAPIは、Swagger UIとReDocを使用して、自動的にAPIドキュメントを生成します。これにより、開発者はリアルタイムでAPIの動作を確認しやすくなります。
  4. セキュリティと認証
    OAuth2.0やJWTなどの認証プロトコルを簡単に実装できるため、セキュアなAPIの開発が可能です。

4. FastAPIの使い方

4.1 インストール

FastAPIはpipで簡単にインストールできます:

pip install fastapi
pip install uvicorn

4.2 簡単なAPIの例

以下は、FastAPIを使って簡単なAPIを作成する例です:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

4.3 サーバーの起動

Uvicornを使って、開発サーバーを起動します:

uvicorn main:app --reload

4.4 実行結果

サーバーが正常に起動すると、次のようなメッセージが表示されます:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [PID]
INFO:     Started server process [PID]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

エンドポイントの確認

GET 「/」 (URL: http://127.0.0.1:8000/)のレスポンス:

{
    "Hello": "World"
}

GET 「/items/{item_id}」(URL: http://127.0.0.1:8000/items/42?q=example)のレスポンス:

{
  "item_id": 42,
  "q": "example"
}

    Swagger UIの確認

    FastAPIは、Swagger UIを使って自動生成されたAPIドキュメントを提供します。ブラウザで次のURLにアクセスすると、Swagger UIが表示されます:

    • URL: http://127.0.0.1:8000/docs

    ReDocの確認

    もう一つのドキュメント生成ツールとして、ReDocも利用できます。ブラウザで次のURLにアクセスすると、ReDocが表示されます:

    • URL: http://127.0.0.1:8000/redoc

    このようにして、FastAPIを使って簡単にAPIを作成し、起動し、実行結果を確認することができます。自動生成されたドキュメントを使うことで、APIのエンドポイントやパラメータを視覚的に確認することも可能です。

    5. まとめ

    FastAPIは、高速で使いやすいWebフレームワークとして、API開発に最適です。型ヒントを活用したシンプルなコード、非同期処理対応、自動生成ドキュメントなど、多くの利点を提供します。是非、次のプロジェクトでFastAPIを試してみてください。

    6. 参考リンク

    FastAPI

    FastAPI framework, high performance, easy to learn, fast to code, ready for production