Skip to content

syedfaiqueali/REST_APIs-With-Flask-and-Python

Repository files navigation

Contributors Forks Stargazers Issues LinkedIn


Logo

REST APIs with Flask and Python

In this I'm structuring REST API using Flask and popular extension Flask-RESTful.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Repository
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. Contact

About The Repository

Using Flask and popular extensions Flask-RESTful, Flask-JWT, and Flask-SQLAlchemy will dive right into developing complete, solid, production-ready REST APIs.

Also looking into essential technologies Git, Heroku, and nginx.

You'll be able to...

  • Create resource-based, production-ready REST APIs using Python, Flask, and popular Flask extensions;
  • Handle secure user registration and authentication with Flask.
  • Using SQLAlchemy and Flask-SQLAlchemy to easily and efficiently store resources to a database; and
  • Understand the complex intricacies of deployments and the performance of Flask REST APIs.

Things that you can learn

  • Connect web or mobile applications to databases and servers via REST APIs
  • Create secure and reliable REST APIs which include authentication, logging, caching, and more
  • Understand the different layers of a web server and how web applications interact with each other
  • Handle seamless user authentication with advanced features like token refresh
  • Handle log-outs and prevent abuse in your REST APIs with JWT blacklisting
  • Develop professional-grade REST APIs with expert instruction
  • Integrate advanced functionality in your API such as image upload, payments, or user confirmation e-mails!
  • Bring your REST API development to a whole new level by getting familiar with more of the Flask ecosystem
  • Improve operations of existing REST APIs with database migrations and extensive refactoring knowledge
  • Easily deploy documentation pages and test your API with Postman's collection runner
  • Use Marshmallow for data serialization and deserialization
  • Send e-mails and user confirmations
  • Upload images
  • Database migrations
  • Easy ways of writing documentation and testing your API
  • Handle payments using Stripe
  • Third party login using OAuth (GitHub is used as the example)

But what is a REST API anyway?

A REST API is an application that accepts data from clients and returns data back. For example, a REST API could accept text data from the client, such as a username and password, and return whether that is a valid user in the database. When developing REST APIs, our clients are usually web apps or mobile apps. That's in contrast to when we make websites, where the clients are usually the users themselves.

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

You should have python and pip installed on your machine.

  • python
  • pip

Installation

  1. Clone the repo
    git clone https://github.com/your_username_/Project-Name.git
  2. Install libraries
    pip install library_name

Environment Setup

i) For Virtual Environment

  1. To install virtual environment (Browser to project folder's directory, then run)
    pip install virtualenv
  2. Then restrict python version in your environment
    virtualenv venv --python=python3.8
  3. To activate virtual environment
    source venv/bin/activate
  4. To run the app
    python app.py
    

ii) For Python Environment

  1. To install python environment (Browser to project folder's directory, then run)
    pip install pipenv
  2. Then restrict python version in your environment
    pipenv --python=python3.8
  3. To activate virtual environment
    pipenv shell
  4. To run the app
    python app.py
    

Usage

Use this space to show useful examples of how this repository can be used or improved. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

For more examples, please refer to the Documentation

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 Work Branch (git checkout -b dev/your_name)
  3. Commit your Changes (git commit -m 'Add some Files')
  4. Push to the Branch (git push origin dev/your_name)
  5. Open a Pull Request

Contact

Syed Faique Ali - @faiqueali017 - [email protected]

LinkedIn Profile: https://www.linkedin.com/in/faique-ali/