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 Cloud –
uv run fastapi deployでワンクリックデプロイ(同じチームが提供)。 - 任意のASGI互換ホスト(Uvicorn、Hypercorn、Gunicorn + Uvicornワーカー、Docker、サーバーレスプラットフォームなど)。
使用している企業
READMEでは、Microsoft、Uber(Ludwig)、Netflix(Dispatch)、Cisco、および多くの他の企業での本番環境での使用が挙げられています。
TL;DR
FastAPIを使えば、標準的なPython関数を書くだけで、型ヒントを付与し、以下を即座に得られます:
- 高性能な非同期処理
- 自動的なリクエスト検証とレスポンス直列化
- 動的なOpenAPIドキュメント
- 強力なエディタサポート 学習コストが非常に低く、現代のPython API開発の最適選択肢です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト