-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Issue 28] Back End Framework ADR #121
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all of your work on this @SammySteiner!! Flask seems like a great foundational framework and APIFlask adds some nice features on top of it from what I could see.
I say let's move forward with this decision, especially since Nava has a template pre-configured with these options.
As we discussed a bit yesterday, the real test of some of the helper frameworks on top of Flask will be when we actually start building out the endpoints. And I think the most important thing is for us to do is to structure the codebase in such a way that it would be relatively simple to swap out one helper library for another (e.g. separating out schemas, crud operations, and middleware into separate packages, and keeping the logic in the actual routing pretty lightweight)
|
||
## Decision Outcome <!-- REQUIRED --> | ||
|
||
Chosen option: Flask + APIFlask, because it is well established with a broad community of developers and provides good tooling to move quickly. It has great documentation to help folks contribute quickly. Additionally the Nava Flask template recently adopted it, so we can leverage the template to get going quickly with a well engineered solution. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding this!! I was looking at APIFlask yesterday and seems like a sensible library with some cool features.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me! Thanks for the thoughtful consideration here @SammySteiner and others.
- Very well documented | ||
- **Cons** | ||
- Same as Flask | ||
- Relatively young project |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I think this would be my biggest concern with the decision, it looks like it has <1k stars on GH if IIRC, but Flask provides a solid foundation and swapping out RESTful frameworks shouldn't be too hard if we structure the codebase correctly.
Resolves #28
ADR to discuss 3 python api frameworks, as well as 2 extensions on the flask framework for consideration for the backend api.