【要約】FastAPIのDIを整理 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が関数内で直接DB接続等のリソースを生成すると、コードが具象クラスに強結合する。その結果、テスト時にモックへ差し替えることが困難になる。具体的には以下の問題が発生する。
// Approach
FastAPIの
Depends() を活用し、依存対象を外部から注入する設計を採用する。これにより、以下の手法で問題を解決する。// Result
DIを導入することで、本番コードを変更せずにテスト用のリソースへ差し替えられる。これにより、以下の成果が得られる。
Senior Engineer Insight
> FastAPIのDIは、スケーラブルなAPI開発における設計の要である。サブ依存のキャッシュ機能は、リクエスト内でのリソース重複を防ぎ、性能と整合性を両立させる。ただし、
dependency_overrides の管理を誤るとテスト間で副作用が生じる。テスト終了時のクリーンアップ徹底は、開発現場における必須の規律である。