fastapi-async-sqlmodel-boilerplate icon indicating copy to clipboard operation
fastapi-async-sqlmodel-boilerplate copied to clipboard

CRUDBase class issues

Open igorbenav opened this issue 1 year ago • 2 comments

Your current CRUDBase version might have a few inconsistencies I eventually fixed in FastCRUD, plus a few other bugs before that.

You should probably take a look at the FastCRUD changelog and the bug fixes before FastAPI-boilerplate 0.11.0. You could, of course, also look the actual FastCRUD class source code to find the changes or just use FastCRUD.

igorbenav avatar Apr 01 '24 05:04 igorbenav

Plus, if you need anything, you may contact me. Keep rocking!

igorbenav avatar Apr 01 '24 05:04 igorbenav

Your current CRUDBase version might have a few inconsistencies I eventually fixed in FastCRUD, plus a few other bugs before that.

You should probably take a look at the FastCRUD changelog and the bug fixes before FastAPI-boilerplate 0.11.0. You could, of course, also look the actual FastCRUD class source code to find the changes or just use FastCRUD.

Thank you very much for your feedback, @igorbenav ! I had already been considering the use of FastCRUD; I've been following its development, and it's really impressive.

I'm using this boilerplate in production to accumulate some experiences and insights. As soon as possible, I'll make the adjustment/correction you mentioned and some other improvements.

joaoflaviosantos avatar Apr 01 '24 11:04 joaoflaviosantos

Hello @igorbenav,

First, thank you for your feedback and the chance to share details about my project's evolution.

Boilerplate context:
I used your FastAPI-boilerplate as a reference about a year ago, adapting it to use SQLModel (inspired by fastapi-alembic-sqlmodel-async) instead of SQLAlchemy. Today, the repository is 264 commits ahead of the original template and has been in constant production use.

Technical choices:

  • Dependency minimalism: I prefer keeping pyproject.toml lean, ensuring every external library is essential. At the time, fastcrud didn’t exist, so I implemented ORM (SQLModel) functionalities directly.
  • Feature-based structure: Inspired by Django’s apps system, I organize each module with its own crud.py, even for complex queries (joins, aggregations, subqueries). This simplifies IDE navigation (ctrl+click 😅) and control over specific business rules.

Admiration for your work:
I follow projects like clientai, fastsecure, and crudadmin with great interest—your approach to OOP and API design is inspiring!

Next steps:
I’ll carefully review this issue’s suggestions and explore integrating concepts from FastCRUD (in fastcrud) into my project’s CRUDBase class, ensuring compatibility with the current codebase.

Once again, thank you for your immense contributions to the open-source community. Your work is a reference for many, including me! 🚀

joaoflaviosantos avatar Apr 18 '25 01:04 joaoflaviosantos

Hey, @joaoflaviosantos, thank you so much for the kind words!

Makes total sense. I actually even prefer feature-based for monoliths, but my original boilerplate was more of a microservices type. I opened this issue when I launched FastCRUD simply because with FastCRUD I solved a bunch of bugs of my original CRUDBase, but it's been a year, so you definitely fixed what wasn't working!

Keep rocking 🎉

igorbenav avatar Apr 19 '25 00:04 igorbenav