Course Overview
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!
FAQ
FAQ area empty
Course curriculum
-
Introduction to this section
61 Xem trước -
Access the code for this section here
-
Variables in Python
506 Xem trước -
Variables in Python
-
Variables (Python 3.10)
0 -
Solution to coding exercise: Variables
120 Xem trước -
String formatting in Python
386 Xem trước -
Getting user input
316 -
String formatting and getting user input
-
Writing our first Python app
400 -
Lists, tuples, and sets
391 -
Advanced set operations
279 -
Lists, tuples and sets
-
Lists, tuples, and set (Python 3.10)
0 -
Solution to coding exercise: Lists, tuples, sets
280 -
Booleans in Python
299 -
If statements
497 -
Booleans and 'if' statements
-
The 'in' keyword in Python
122 -
If statements with the 'in' keyword
498 -
The 'in' keyword and 'if' statements
-
Loops in Python
667 -
Loops in Python
-
Flow control—loops and ifs (Python 3.10)
0 -
Solution to coding exercise: Flow control
188 -
List comprehensions in Python
444 -
List comprehensions
-
Dictionaries
511 -
Dictionaries
-
Destructuring variables
508 -
Destructuring variables
-
Functions in Python
641 -
Functions in Python
-
Function arguments and parameters
460 -
Function arguments and parameters
-
Default parameter values
234 -
Functions returning values
439 -
Default parameters and function returning values
-
Functions (Python 3.10)
0 -
Solution to coding exercise: Functions
150 -
Lambda functions in Python
472 -
Dictionary comprehensions
241 -
Lambda functions and dictionary comprehensions
-
Dictionaries and students (Python 3.10)
0 -
Solution to coding exercise: Dictionaries
376 -
Unpacking arguments
624 -
Unpacking keyword arguments
524 -
Object-Oriented Programming in Python
952 -
Magic methods: __str__ and __repr__
385 -
Classes and objects (Python 3.10)
0 -
Solution to coding exercise: Classes and objects
304 -
@classmethod and @staticmethod
843 -
@classmethod and @staticmethod (Python 3.10)
0 -
Solution to coding exercise: @classmethod and @staticmethod
354 -
Class inheritance
512 -
Class composition
368 -
Type hinting in Python 3.5+
308 -
Imports in Python
573 -
Relative imports in Python
532 -
Errors in Python
767 -
Custom error classes
304 -
First-class functions
472 -
Simple decorators in Python
432 -
The 'at' syntax for decorators
213 -
Decorating functions with parameters
144 -
Decorators with parameters
290 -
Mutability in Python
363 -
Mutable default parameters (and why they're a bad idea)
267
-
Access the course e-book here
-
Overview of the project we'll build
240 -
Initial set-up for a Flask app
276 -
Your first REST API endpoint
245 -
What is JSON?
223 -
How to interact with and test your REST API
268 -
How to create stores in our REST API
337 -
How to create items in each store
475 -
How to get a specific store and its items
279
-
Data model improvements for our API
940 -
General improvements to our first REST API
427 -
New endpoints for our first REST API
545 -
How to run the API in Docker with automatic reloading and debug mode
386 -
How to use Blueprints and MethodViews in Flask
625 -
How to write marshmallow schemas for our API
241 -
How to perform data validation with marshmallow
271 -
Decorating responses with Flask-Smorest
279
-
Overview and why use SQLAlchemy
127 -
How to code a simple SQLAlchemy model
285 -
How to write one-to-many relationships using SQLAlchemy
581 -
How to configure Flask-SQLAlchemy with your Flask app
473 -
How to insert data into a table using SQLAlchemy
441 -
How to find models in the database by ID or return a 404
237 -
How to update models with SQLAlchemy
310 -
How to retrieve list of all models
49 -
How to delete models with SQLAlchemy
71 -
Deleting related models with cascades
216 -
Conclusion of this section
233
-
Changes in this section
-
What is a JWT?
-
Who uses the JWT?
615 -
How to set up Flask-JWT-Extended with our app
256 -
Coding the User model and schema
127 -
How to add a register endpoint to the REST API
575 -
How to add a login endpoint to the REST API
518 -
Protect endpoints by requiring a JWT
360 -
JWT claims and authorization
355 -
How to add logout to the REST API
378 -
Request chaining with Insomnia
272 -
Token refreshing with Flask-JWT-Extended
570
-
What are Git repositories and commits?
583 -
Initialize a Git repository for our project
507 -
Caution: line endings in Windows and Unix
-
Writing Markdown for documents and commits
156 -
Remote repositories and how to use them
327 -
Git branches and merging
377 -
Merge conflicts and how to resolve them
330 -
Overview of the final e-book chapters
98
-
Overview of this section
-
Deployment error expected in the next lecture!
-
Creating a Render.com web service
354 -
How to run Flask with gunicorn in Docker
373 -
Get a deployed PostgreSQL database (update 2024)
-
Get a deployed PostgreSQL database
111 -
Adding required dependencies to requirements.txt
-
Run the app and database locally with Docker Compose
531 -
How to run the database migrations in your compose container
-
Connecting to your Docker Compose database with a database client
-
Use PostgreSQL locally and in production
993 -
Test the finished production app
98
-
How to send emails with Python and Mailgun
286 -
How to send emails when users register
577 -
What is a task queue and setting up a Redis database
305 -
How to Populate and consume the task queue with rq
386 -
How to process background tasks with the rq worker
324 -
How to send HTML emails using Mailgun and Python
617 -
How to deploy a background worker to render.com
339
Requirment
-
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
Outcomes
-
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
0 Student
2 Courses
0 review