This flask api is tiny part of a whole system implementing data-warehouse.
Request Demo
·
Report Bug
·
Request Feature
This POC/ boilerplate API is part of a larger system implementing data-warehousing that was required to normalize data coming from various sources and of different types. The system parsed all the incoming data to common JSON format, before ingestinng to the ware-house. We also parsed PDFs, xmls, html and excel/ csv files along with other databases.
Why Flask
Do you think that because Flask is a micro-framework, it must only be good for small, toy-like web applications? Well, not at all!
Can Flask scale? For many, that is the million dollar question. Unfortunately even the Flask official documentation is ambiguous about this topic. Flask is a small, unobtrusive framework that simplifies the interface between your application and the web server. Outside of that, it mostly stays out of your way, so if you need to write an application that can scale, Flask is not going to prevent it, and in fact, it will allow you to freely choose the components of your stack and not impose choices on you like big frameworks tend to do.
Top 3 Key Learnings:
- Data-warehouse implementation with Python
- RESTful API development wit Flask
- Flask can scale to hanle millions of requests per second 😎
Contributors are always welcomed!
This project still needs some effort to formalize the structure a bit more. And of course, writing the tests.
To get a local copy up and running follow these simple example steps.
To run this project, you should have following dependencies ready:
- Python3
- Pip
- Clone the repo
git clone https://github.com/umairqadir97/scaling_flask_api.git
- Open terminal in project folder
cd scaling_flask_api
- Install python packages
pip3 install -r requirements.txt
- Run server
python3 api.py
Postman collection is provided as part of the solution. Visit Postman Collections
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b amazing_features
) - Commit your Changes (
git commit -m 'Add some Amazing Features'
) - Push to the Branch (
git push origin amazing_features
) - Open a Pull Request
- Writing tests
- Code review
- Feature Enhancement
Distributed under the MIT License. See LICENSE
for more information.
Muhammad Umair Qadir - Email
LinkedIn: LinkedIn