このプロジェクトについて
このリポジトリは、スタートアップでの本番運用経験に基づくFastAPIのベストプラクティスと規約を厳選したものです。ライブラリやフレームワークではなく、コード例とアーキテクチャガイダンスを提供するドキュメントリソースです。
主なトピックは以下の通りです。
- プロジェクト構造:NetflixのDispatchに触発されたドメインベースのレイアウト。各モジュールには、独自のルーター、スキーマ、モデル、サービス、依存関係、定数、設定、ユーティリティ、例外が含まれます。
- 非同期ルート:I/O集中型およびCPU集中型タスクの処理に関するガイダンス。FastAPIが同期ルートをスレッドプールで実行する方法と、非同期ルートでのブロッキング操作がイベントループを停滞させる理由を説明します。
- Pydanticの使用法:バリデーションにPydanticを広範囲に使用し、一貫した日時シリアライゼーションのためのカスタムグローバルベースモデルを作成し、BaseSettingsをモジュール間で分割します。
- 依存関係:インジェクション以外のリクエストバリデーション、依存関係の連鎖、リクエストスコープのキャッシングの活用、非同期依存関係の優先など、FastAPIの依存関係を活用します。
- その他のプラクティス:REST規約に従う、FastAPIのレスポンスシリアライゼーション動作を理解する、スレッドプールで同期SDKを実行する、BackgroundTasksと実際のタスクキューの使い分け、ValueErrorからValidationErrorへの変換の処理、デフォルトでドキュメントを非表示にする、データベースの命名規則の設定、Alembicマイグレーションの使用、ruffの採用。
リポジトリには、AIエージェント向けに同じルールを機械可読形式で記述したAGENTS.mdファイルも含まれており、バージョンマトリックス、Do/Don'tブロック、アンチパターンチェックリストが含まれています。READMEの簡体字中国語翻訳も利用可能です。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.