FastAPI Base Repositoryライブラリ
(github.com/4jades)ORMベースのCRUD実装では、繰り返し発生するクエリコードがどんどん積み上がっていきます。
私たちのチームでも、モデルごとに似たようなパターンのボイラープレートが増えていました。
SQLAlchemy v2スタイル、型安全性、Pydantic v2のスキーママッピングまで、すべてを満たすライブラリを見つけるのはなかなか難しかったです。
そこで今回、SQLAlchemyのCRUDボイラープレートを減らすための
シンプルなRepositoryレイヤーをライブラリとして整理してみました。
- ジェネリックベースでModelとSchemaを指定するとCRUDが自動で提供され、
- mypyで結果の型を正確に推論できるようにオーバーロードも用意し、
- 必要に応じてMapperだけを差し替えて、さまざまなスキーマ戦略を適用できます。
私たちのチームでは、これによってSQLAlchemyのCRUDコード量をかなり削減できました。
同じような問題に悩んでいる方がいれば、ぜひ参考にしてみてください。
使ってみて感じた点を知らせていただければ、積極的に反映していきたいと思います。
まだコメントはありません。