fastapi/fastapi

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

FastAPI – API用の高速Pythonウェブフレームワーク

何であるか – FastAPIは、PythonでHTTP APIを構築するための現代的で本番環境対応のウェブフレームワークです。標準的なPythonの型ヒント、非同期ウェブコアとしてのStarlette、データ検証/直列化のためのPydanticを活用しています。

なぜ重要か – フレームワークは、Node.jsやGoと同等の速度を実現しながら、開発者の体験をシンプルに保っています:通常のPython関数を書くだけで、自動的なリクエスト検証、直列化、およびインタラクティブなOpenAPIドキュメント(Swagger UIおよびReDoc)を無料で得られます。


コア機能(READMEに記載)

  • パフォーマンス – StarletteとPydanticに基づいて構築されており、最も高速なPython APIフレームワークの一つです。
  • 開発が速い – 通常、開発速度が200〜300%向上します。
  • バグが少ない – 自動検証により、開発者が引き起こすエラーが約40%削減されます。
  • インテリジェントなエディタサポート – 完全な型対応の自動補完とLintingが可能。
  • 標準準拠 – OpenAPI(Swagger)およびJSON-Schema仕様を自動生成します。
  • 自動ドキュメント – インタラクティブなSwagger UIおよびReDocインターフェースが標準で提供されます。
  • 依存性注入 – クリーンアーキテクチャを実現するシンプルで型ベースのDIシステム。
  • セキュリティヘルパー – 内蔵のOAuth2、JWT、HTTP Basicなど。
  • 拡張性 – Starlette拡張機能を介してWebSocket、CORS、クッキーセッション、GraphQL(Strawberry経由)などに対応。

一般的な使用例

  • マイクロサービスおよび内部API。
  • 機械学習モデルやデータパイプライン向けの公開RESTfulサービス。
  • 速やかなイテレーションが必要なWebまたはモバイルアプリケーションのバックエンド。
  • 自動OpenAPIドキュメントが必要なプロトタイピングおよび本番デプロイ。

セットアップ方法(READMEから)

# uv(またはpip)でインストール – 「standard」エキストラは推奨される依存関係を含みます
uv add "fastapi[standard]"

main.pyを作成します:

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 = None):
    return {"item_id": item_id, "q": q}

開発サーバーを起動します:

uv run fastapi dev   # オートリロード、http://127.0.0.1:8000 で提供

http://127.0.0.1:8000/docs(Swagger UI)または.../redocにアクセスして、代替UIをご覧ください。


例の拡張(PUTリクエストに本文を含む)

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_offer: bool | None = None

@app.put('/items/{item_id}')
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

ドキュメントは自動的に新しいリクエスト本文スキーマを表示します。


デプロイオプション

  • FastAPI Clouduv run fastapi deployでワンクリックデプロイ(同じチームが提供)。
  • 任意のASGI互換ホスト(Uvicorn、Hypercorn、Gunicorn + Uvicornワーカー、Docker、サーバーレスプラットフォームなど)。

使用している企業

READMEでは、Microsoft、Uber(Ludwig)、Netflix(Dispatch)、Cisco、および多くの他の企業での本番環境での使用が挙げられています。


TL;DR

FastAPIを使えば、標準的なPython関数を書くだけで、型ヒントを付与し、以下を即座に得られます:

  • 高性能な非同期処理
  • 自動的なリクエスト検証とレスポンス直列化
  • 動的なOpenAPIドキュメント
  • 強力なエディタサポート 学習コストが非常に低く、現代のPython API開発の最適選択肢です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト