Professional RESTful API Design using Python Flask
4.7 (43 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
750 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Professional RESTful API Design using Python Flask to your Wishlist.

Add to Wishlist

Professional RESTful API Design using Python Flask

Learn the fundamental concepts and build a RESTful API application from scratch
4.7 (43 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
750 students enrolled
Created by Jorge Escobar
Last updated 1/2017
Current price: $10 Original price: $120 Discount: 92% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 4.5 hours on-demand video
  • 1 Article
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • You will learn the fundamental concepts for the design of RESTful API platforms
  • You will be introduced to the RESTful API constraints
  • You will learn how to setup an authentication API layer
  • You will learn how to effectively build API endpoints
View Curriculum
  • A computer with internet access and administrative access to install packages
  • Good understanding of how to use the command line interface, internet and code editors
  • Good knowledge of the Flask web framework

This course will teach you how to build a professional API platform using pure Flask, without any supplemental libraries, so that students can learn the fundamentals of RESTful API design.

In today’s world, dominated by gorgeous JavaScript user interfaces and mobile applications, the ability to build a scalable and well architected API is key to be able to supplement those applications and ensure that clients and servers communicate with the proper interfaces.

The course covers the basic concepts of the RESTful API pattern and then goes into detail and step by step building an API platform that will cover the six constraints of the architecture. Students will learn the industry-standard and will follow best practices for API architectures.

At the end of the course students will be able to design, architect and build their own RESTful API platforms, and with the deep understanding of the laws governing APIs, can go ahead and try out the API libraries available for Python and Flask, knowing the fundamentals and the advantages of using them.

If you already know the basics of Flask and you are interested in how to design, architect and build an API platform, this is the course for you.

The course is divided in 2 sections:

  • Introduction which covers all the concepts necessary to understand what is a RESTful API and its six constraints

  • A step by step explanation building a Pet Store API that will include an authentication layer, a Store endpoint and a Pet endpoint as well as search functionalities

The course has more than 5 hours of video tutorials as well as the source code at the end of each section, so that you can follow along with the coding process.

The course can take anywhere from 3 to 10 days to complete based on how much material the student completes daily.

Additionally we’re constantly updating the course, adding contents thanks to the feedback of our students.

Join this course and continue your path to becoming a professional backend web developer!

Who is the target audience?
  • Programmers and developers with basic Flask knowledge who want to learn how to design and build professional API platforms
  • Application architects who want to understand better how to build API applications
  • Startup CTOs who want to understand better best practices for API design
  • Computer Science Students who want to get exposed to real life API building concepts
Students Who Viewed This Course Also Viewed
Curriculum For This Course
36 Lectures
3 Lectures 25:09

- What do we want to accomplish in this course?
- Prerequisites
- What do I need to have to complete this course?

Preview 01:09

What is an API?

  • API stands for "Application programming interface", and it's a set of routines, protocols and tools for building interactions between clients and servers.

What is REST?

  • REST stands for “Representational State Transfer” and it's a networked, hypermedia architectural style typified by the web
  • REST by design has six constraints:
    • Uniform interface
    • Stateless
    • Cacheable
    • Client-server
    • Layered System
    • Code on Demand (optional)
APIs and the Six Constraints of REST

Uniform Interface

  • Resource-Based
  • Manipulation of Resources Through Representations
  • Self-descriptive Messages
  • Hypermedia as the Engine of Application State (HATEOAS)

The RESTful Uniform Interface Constraint
A Simple API - Pet Store
31 Lectures 04:09:15

Installing the Docker Client

Installing the Docker Client

Basic Container Structure

- Docker client for Mac
  - Docker compose
  - Running the containers separately for pdb

Running the Container

- Using Flask pluggable views
    - Explain Flask pluggable views -
- Our first endpoint, /pets
    - A simple GET pluggable view

Preview 12:22

Using Postman -

Using Postman

A simple POST handler

Our First POST

Talk about HTTP Status Codes -

Preview 08:53

- Build a GET individual pet endpoint
- Add location to all pets (HATEOAS)


Implement PUT, DELETE on pets


Explanation of the authentication design we are going to use

A Simple Authentication

- Write a decorator to allow the user to access the API
- Add authentication to headers in Postman

Testing our Simple Authentication

Create the app registration endpoint and generator

Token API Model and API Endpoints

Build the token-based application access decorator

Token API Views and Decorator

Install bcrypt and Test Tokens

Start a testing framework

Building the Apps Tests

Token Tests

Token Tests

- Build store models
- Don't expose MongoDB ID, use uuid

Starting the Store End Point

- Validation of data using jsonschema -
  - Great resource - - to understanding it

The JSON Schema Library

Build JSON templates

The Store API File

Use Postman to test the Store end points

Trying out the Stores End Point

- PUT operations are the update of CRUD. It generally receives all the fields with the ones being updated changed.
  - PATCH is used for updating only specific fields (we won't implement)
- Implement DELETE

Implementing PUT and DELETE

- Pagination
   - Results should always be paginate
   - Links within show next and prev
   - This is the HATEOAS of the app

Implementing pagination on GET all stores

- Testing CRUD
- Testing pagination
  - Introduction to Fixtures
  - Custom fixtures using mongoimport

Store Tests

- Create CRUD

Pet Endpoint Initial CRUD

- Postman Tests

Finishing Pet GET, POST and Postman Tests

- PUT and DELETE for Pets endpoint


- Write tests for Pets endpoint

Pets Tests

- Pets pagination tests

Pets Pagination Tests

- Use the same Store GET endpoint

Get all Pets in a Specific Store Endpoint

Get all pets in a specific store using Postman

Testing the get all pets endpoint

Search pets across stores

  • Implementing filters across stores
  • Create a pets_href template to add filters
Search pets across stores
2 Lectures 01:34
Congratulations on Finishing the Course!

About the Instructor
Jorge Escobar
4.5 Average rating
754 Reviews
4,792 Students
5 Courses
Technologist, entrepreneur and open source fanatic

From Zero is an educational project created by Jorge Escobar, a technologist, entrepreneur and open source fanatic with more than 15 years of experience in the development of web applications in New York City.

Jorge has worked in well established companies like Yahoo!, Univision and MongoDB and has also been the technical founding member of various successful tech startups that have received multiple rounds of venture capital.

The biggest problem Jorge has experienced during his career is finding well rounded developers and he interviewed hundreds of them for positions in the teams he was leading. A constant pattern (no matter if candidates came from a good university or had a few years of experience) was the lack of practical, real world knowledge.

That’s why Jorge created From Zero, an educational project that would address those practical knowledge issues through training that builds hands-on experience and equip students with the tools required to be successful in today’s technology business needs.