FastAPI Base-Repository-Bibliothek
(github.com/4jades)Bei ORM-basierten CRUD-Implementierungen häuft sich ständig wiederkehrender Query-Code an.
Auch in unserem Team nahm der ähnliche Boilerplate-Code für jedes Modell immer weiter zu,
und es war schwierig, eine Bibliothek zu finden, die gleichzeitig den SQLAlchemy-v2-Stil, Typsicherheit und Pydantic-v2-Schema-Mapping erfüllt.
Deshalb habe ich diese Gelegenheit genutzt, um eine einfache Repository-Schicht als Bibliothek zu strukturieren,
um den SQLAlchemy-CRUD-Boilerplate zu reduzieren.
- Auf Basis von Generics werden CRUD-Funktionen automatisch bereitgestellt, wenn Model und Schema angegeben werden
- Außerdem habe ich Overloads eingerichtet, damit mypy den Ergebnistyp korrekt inferieren kann
- Bei Bedarf lässt sich nur der Mapper austauschen, um verschiedene Schema-Strategien anzuwenden.
In unserem Team konnten wir damit den Umfang des SQLAlchemy-CRUD-Codes deutlich reduzieren.
Falls Sie ein ähnliches Problem haben, schauen Sie es sich gern an,
und wenn Sie beim Einsatz Eindrücke sammeln, nehme ich Ihr Feedback gern aktiv auf.
Noch keine Kommentare.