FastAPIを使用したWebアプリケーション開発用テンプレート。
- 🚀 高速開発: 構造化されたテンプレート、ホットリロード、包括的なツール群
- 🏗️ モジュラーアーキテクチャ: クリーンなAPI設計とバージョン管理
- 🗄️ データベース統合: SQLAlchemy、PostgreSQL、Redis対応、マイグレーション管理
- 🐳 Docker対応: Docker Composeによる完全なコンテナ化
- 🔒 セキュリティ重視: BanditとSemgrepによる組み込みセキュリティスキャン
- 📊 監視機能: Sentry統合、New Relic APM、構造化ログ
- 🧪 コード品質: Ruffによる自動リント、フォーマット、型チェック
- このテンプレートを使用して新しいリポジトリを作成
- リポジトリをクローン:
git clone https://github.com/yourusername/your-api-name.git cd your-api-name
# プロジェクト名を設定
make project:init NAME="あなたのプロジェクト名"
# 環境ファイルをセットアップ
make envs:setup
# 依存関係をインストール
make dev:setup
ローカル開発:
cd app && python main.py
Docker使用(推奨):
# データベースとRedisと一緒にAPIを起動(不要ならfalseにする)
make up INCLUDE_DB=true INCLUDE_REDIS=true
APIサーバーが起動しました! 🎉
- API文書: http://localhost:8000/docs
- 管理画面: http://localhost:8080 (Adminer - データベース管理)
- 開発ガイド - API構築、データベース操作、Docker開発の完全ガイド
- クイックリファレンス - 開発に必要なコマンド一覧
app/
├── main.py # FastAPIエントリーポイント
├── api/ # APIエンドポイント(バージョン管理)
├── core/config.py # 設定管理
├── db/ # データベース層(モデル、スキーマ、CRUD)
├── static/ # 静的ファイル(CSS、JS、画像など)
├── templates/ # Jinja2テンプレート(HTMLファイル)
└── utils/ # ユーティリティ関数とヘルパー
主要機能:
- 構造化されたテンプレート: モデル、スキーマ、CRUD、ルーターの明確な分離
- データベース層: モデル、スキーマ、CRUD操作のクリーンな分離
- 設定システム: Pydanticバリデーション付き環境ベース設定
- エラーハンドリング: 包括的なエラートラッキングとユーザーフレンドリーな応答
- FastAPI - モダンで高速なPython Webフレームワーク
- SQLAlchemy - マイグレーション対応データベースORM
- Pydantic - データバリデーションと設定管理
- uv - Pythonパッケージ管理
- Ruff - 超高速リントとフォーマット
# 開発
make dev:setup # 全依存関係をインストール
make envs:setup # テンプレートから環境ファイルを作成
# コード品質
make format # Ruffでコードをフォーマット
make lint # コード品質をチェック
make security:scan # セキュリティ分析を実行
# Docker操作
make up # APIサーバーを起動
make up INCLUDE_DB=true # データベース付きで起動
make logs # コンテナログを表示
make down # 全コンテナを停止
# データベース
make db:migrate # データベースマイグレーションを適用
make db:revision:create NAME="説明" # 新しいマイグレーションを作成
- APIエンドポイントを作成:
app/db/models/
にモデルを作成app/db/schemas/
にスキーマを作成app/db/crud/
にCRUD操作を作成app/api/v1/
にルーターを作成
- ルーターを登録:
app/api/v1/__init__.py
にルーターを追加 - マイグレーション:
make db:revision:create NAME="add_model"
- テスト: 開発中は
make reload
でホットリロード
各側面の詳細なチュートリアルは開発ガイドを参照してください。
- リポジトリをフォーク
- 機能ブランチを作成
- 変更を加える
- テストとリントを実行:
make lint && make security:scan
- プルリクエストを送信
このテンプレートはオープンソースで、MITライセンスの下で利用可能です。