Skip to content

Boilerplate for building Flask API, and scaling to production

Notifications You must be signed in to change notification settings

umairqadir97/scaling-flask-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python 3.6 Contributors Issues MIT License LinkedIn


Logo

Flask API on Scale

This flask api is tiny part of a whole system implementing data-warehouse.


Request Demo · Report Bug · Request Feature

Table of Contents

About The Project

Product Name Screen Shot

Product Name Screen Shot

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.


Built With

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

To run this project, you should have following dependencies ready:

  1. Python3
  2. Pip

Installation

  1. Clone the repo
git clone https://github.com/umairqadir97/scaling_flask_api.git
  1. Open terminal in project folder
cd scaling_flask_api
  1. Install python packages
pip3 install -r requirements.txt
  1. Run server
python3 api.py

Usage

Postman collection is provided as part of the solution. Visit Postman Collections

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b amazing_features)
  3. Commit your Changes (git commit -m 'Add some Amazing Features')
  4. Push to the Branch (git push origin amazing_features)
  5. Open a Pull Request

Contribution guidelines

  1. Writing tests
  2. Code review
  3. Feature Enhancement

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Muhammad Umair Qadir - Email

LinkedIn: LinkedIn


Acknowledgements