Mô tả

Are you tired of boring, outdated, incomplete, or incorrect tutorials? I say no more to copy-pasting code that you don’t understand.

Welcome to the bestselling REST API course on Udemy! I'm Jose. I'm a software engineer, here to help you truly understand and develop your skills in web and REST API development with Python, Flask, and Docker.

Production-ready REST APIs with Flask

This course will guide you in creating simple, intermediate, and advanced REST APIs including authentication, deployments, databases, and much more.

We'll start with a Python refresher that will take you from the very basics to some of the most advanced features of Python—that's all the Python you need to complete the course.

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

We will also look into essential technologies like Git and database migrations with Alembic.


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 of Flask REST APIs.

  • Use Docker to simplify running and deploying your REST APIs.


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.

Together we'll develop a REST API that not only allows clients to authenticate but also to store and retrieve any data you want from a database. Learning this will help you develop any REST API that you need for your own projects!


I pride myself on providing excellent support and feedback to every single student. I am always available to guide you and answer your questions.

I'll see you on the inside. Take your first step towards REST API mastery!

Bạn sẽ học được gì

Connect web or mobile applications to databases and servers via REST APIs

Create secure and reliable REST APIs which include authentication, deployments, and database migrations

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

Optimize performance of your REST APIs using task queues and background workers

Yêu cầu

  • Some prior programming experience in any programming language will help. The course includes a full Python refresher course.
  • All software used in the course is provided, and completely free
  • Complete beginners may wish to take a beginner Python course first, and then transition to this course afterwards

Nội dung khoá học

13 sections

Welcome!

3 lectures
How to take this course
01:06
Python on Windows
00:56
Python on Mac
00:20

A Full Python Refresher

68 lectures
Introduction to this section
01:01
Access the code for this section here
00:24
Variables in Python
08:26
Variables in Python
3 questions
Variables (Python 3.10)
1 question
Solution to coding exercise: Variables
02:00
String formatting in Python
06:26
Getting user input
05:16
String formatting and getting user input
4 questions
Writing our first Python app
03:19
Lists, tuples, and sets
06:31
Advanced set operations
04:39
Lists, tuples and sets
5 questions
Lists, tuples, and set (Python 3.10)
1 question
Solution to coding exercise: Lists, tuples, sets
04:40
Booleans in Python
04:59
If statements
08:17
Booleans and 'if' statements
4 questions
The 'in' keyword in Python
02:02
If statements with the 'in' keyword
08:18
The 'in' keyword and 'if' statements
4 questions
Loops in Python
11:07
Loops in Python
3 questions
Flow control—loops and ifs (Python 3.10)
1 question
Solution to coding exercise: Flow control
03:08
List comprehensions in Python
07:24
List comprehensions
3 questions
Dictionaries
08:31
Dictionaries
3 questions
Destructuring variables
08:28
Destructuring variables
3 questions
Functions in Python
10:41
Functions in Python
4 questions
Function arguments and parameters
07:40
Function arguments and parameters
4 questions
Default parameter values
03:54
Functions returning values
07:19
Default parameters and function returning values
4 questions
Functions (Python 3.10)
1 question
Solution to coding exercise: Functions
02:30
Lambda functions in Python
07:52
Dictionary comprehensions
04:01
Lambda functions and dictionary comprehensions
5 questions
Dictionaries and students (Python 3.10)
1 question
Solution to coding exercise: Dictionaries
06:16
Unpacking arguments
10:24
Unpacking keyword arguments
08:44
Object-Oriented Programming in Python
15:52
Magic methods: __str__ and __repr__
06:25
Classes and objects (Python 3.10)
1 question
Solution to coding exercise: Classes and objects
05:04
@classmethod and @staticmethod
14:03
@classmethod and @staticmethod (Python 3.10)
1 question
Solution to coding exercise: @classmethod and @staticmethod
05:54
Class inheritance
08:32
Class composition
06:08
Type hinting in Python 3.5+
05:08
Imports in Python
09:33
Relative imports in Python
08:52
Errors in Python
12:47
Custom error classes
05:04
First-class functions
07:52
Simple decorators in Python
07:12
The 'at' syntax for decorators
03:33
Decorating functions with parameters
02:24
Decorators with parameters
04:50
Mutability in Python
06:03
Mutable default parameters (and why they're a bad idea)
04:27

Your first REST API

9 lectures
Access the course e-book here
00:17
Overview of the project we'll build
04:00
Initial set-up for a Flask app
04:36
Your first REST API endpoint
04:05
What is JSON?
03:43
How to interact with and test your REST API
04:28
How to create stores in our REST API
05:37
How to create items in each store
07:55
How to get a specific store and its items
04:39

Introduction to Docker

3 lectures
What are Docker containers and images?
13:28
How to run a Flask app in a Docker container
11:15
In-depth Docker tutorial notes
00:11

Flask-Smorest for more efficient development

8 lectures
Data model improvements for our API
15:40
General improvements to our first REST API
07:07
New endpoints for our first REST API
09:05
How to run the API in Docker with automatic reloading and debug mode
06:26
How to use Blueprints and MethodViews in Flask
10:25
How to write marshmallow schemas for our API
04:01
How to perform data validation with marshmallow
04:31
Decorating responses with Flask-Smorest
04:39

Store data in a SQL database with SQLAlchemy

11 lectures
Overview and why use SQLAlchemy
02:07
How to code a simple SQLAlchemy model
04:45
How to write one-to-many relationships using SQLAlchemy
09:41
How to configure Flask-SQLAlchemy with your Flask app
07:53
How to insert data into a table using SQLAlchemy
07:21
How to find models in the database by ID or return a 404
03:57
How to update models with SQLAlchemy
05:10
How to retrieve list of all models
00:49
How to delete models with SQLAlchemy
01:11
Deleting related models with cascades
03:36
Conclusion of this section
03:53

Many-to-many relationships with SQLAlchemy

3 lectures
Changes in this section
02:47
One-to-many relationship between stores and tags
10:53
Many-to-many relationship between items and tags
11:23

User authentication with Flask-JWT-Extended

12 lectures
Changes in this section
00:06
What is a JWT?
00:11
Who uses the JWT?
10:15
How to set up Flask-JWT-Extended with our app
04:16
Coding the User model and schema
02:07
How to add a register endpoint to the REST API
09:35
How to add a login endpoint to the REST API
08:38
Protect endpoints by requiring a JWT
06:00
JWT claims and authorization
05:55
How to add logout to the REST API
06:18
Request chaining with Insomnia
04:32
Token refreshing with Flask-JWT-Extended
09:30

Database migrations with Alembic and Flask-Migrate

5 lectures
Why use database migrations at all?
00:05
How to add Flask-Migrate to our Flask app
01:38
Initialize your database with Flask-Migrate
05:42
Change SQLAlchemy models and generate a migration
05:01
Manually review and modify database migrations
03:19

Git Crash Course

8 lectures
What are Git repositories and commits?
09:43
Initialize a Git repository for our project
08:27
Caution: line endings in Windows and Unix
00:21
Writing Markdown for documents and commits
02:36
Remote repositories and how to use them
05:27
Git branches and merging
06:17
Merge conflicts and how to resolve them
05:30
Overview of the final e-book chapters
01:38

Deployments with Render.com

6 lectures
Overview of this section
00:06
Creating a Render.com web service
05:54
How to run Flask with gunicorn in Docker
06:13
Get a deployed PostgreSQL database
01:51
Use PostgreSQL locally and in production
16:33
Test the finished production app
01:38

Task Queues with rq and sending emails

7 lectures
How to send emails with Python and Mailgun
04:46
How to send emails when users register
09:37
What is a task queue and setting up a Redis database
05:05
How to Populate and consume the task queue with rq
06:26
How to process background tasks with the rq worker
05:24
How to send HTML emails using Mailgun and Python
10:17
How to deploy a background worker to render.com
05:39

Bonus Section

1 lectures
Bonus lecture
00:35

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.