4.61 out of 5
4.61
118 reviews on Udemy

Advanced REST APIs with Flask and Python

Take your REST APIs to a whole new level with this advanced Flask and Python course!
Instructor:
Teclado by Jose Salvatierra
2,112 students enrolled
English
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

Welcome to our Advanced REST API Course!

We created the most popular introductory REST API development course on Udemy, with over 4,000 reviews and 20,000 students. Now we want to help you get even farther with this Advanced REST API course, of course still using Flask and Python.

Our first course took you from zero to a deployed REST API that users could access. In this one we will cover a whole bunch of topics students have been requesting for months!

Topics covered

  • 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)

  • Extensive software development knowledge, refactoring, debugging, and more!

  • Use the latest technologies and the best practices. We teach everything using Python 3.7, the latest version.

Course structure

We’ll start with a simple REST API and teach you everything you need to know about it—so even if you’ve not taken our first course, you can follow along with absolutely no issues. We’ve even written an e-book to get you up to speed quickly with this starter REST API!

We introduce new features and technologies by baking them into this application so you can see how a professional REST API is developed. Every new feature is added to a fully working application and tested!

We’ll also help you understand more about how to build features incrementally to get them to your users quickly and minimise risk!

Extra resources

Many lectures contain extra resources, such as links to external documentation and projects, for you to go and learn more. And for each lecture, we include the source code at the start and at the end so you’ll never be lost. All source code is provided as downloadable and also in GitHub for your convenience.

We’re always available to help in the Udemy Course Q&A and also our own student community Slack channel. Make use of these awesome resources!

Advanced course

Remember, this is our most advanced course yet! You should have enough programming experience with Python or another programming language. Some knowledge of how the web works is also really helpful.

You should have knowledge of how to install Python packages and how to run your Python applications. If you’ve used virtualenv or Pipenv before, that’s excellent! Knowledge of PyCharm for debugging is also a plus, although we will cover using the debugger in the course!

Introduction

1
Why you should take this course!
2
Introduction to this section
3
Access the e-book for Section 1 here!
4
Our project and endpoints
5
Reviewing the beginner course code
6
Simplifying our error handling
7
Refactoring our resources
8
Should we have unique names?
9
Adding basic type hinting
10
Adding custom JSON types
11
Using the current class as a type hint
12
Using Black for code formatting
13
Improving errors with constants
14
@classmethod across the board
15
Testing our API with Postman
16
Conclusion of this section

Serialization with Marshmallow

1
Introduction to this section
2
Serialization with Marshmallow
3
Deserialization with Marshmallow
4
Migrating from virtualenv to Pipenv
5
Postman collection for this section
6
Using vanilla Marshmallow with the API
7
Introduction to Flask-Marshmallow
8
Adding items to our REST API
9
Adding stores to our REST API
10
Deduplicating error handling
11
Conclusion of this section

E-mail confirmations

1
Introduction to this section
2
Introduction to e-mail confirmation
3
Postman collection for this section
4
Adding an activated property
5
Activating users manually
6
Telling users they are active
7
Setting up Mailgun
8
Sending e-mails with Mailgun (Part 1)
9
Sending e-mails with Mailgun (Part 2)
10
Creating our Mailgun library file
11
Using .env files in Flask
12
Adding more configuration to .env
13
Error handling in Mailgun
14
Conclusion of this section

Advanced e-mail confirmation

1
Introduction to this section
2
Postman collection for this section
3
Creating the ConfirmationModel
4
Changes in our UserModel
5
Creating our ConfirmationResource
6
Updating our UserResource
7
Adding the last confirmation to the user schema
8
Fixing our app.py
9
Cross-resource dependencies are (generally) bad
10
What are localisation and internationalisation?
11
Storing strings in config files
12
Creating a simple translation library
13
Updating our resources to use translations
14
Adding a new language to our API
15
What is Flask-Babel?
16
Common pitfalls and advice
17
Conclusion of this section

Postman documentation and tests

1
Introduction to this section
2
Postman collection for this section
3
Collection and request descriptions
4
Recap of Postman environments
5
JavaScript tests in Postman
6
Running entire collections in Postman
7
Adding example requests and responses
8
Previewing our Postman documentation
9
Publishing our documentation page
10
More options for publishing documentation
11
Conclusion of this section

Image uploads

1
Introduction to this section
2
Postman collection for this section
3
Installing Flask-Uploads
4
Config files in Flask
5
What are wsgi and Werkzeug?
6
Creating our image helper library
7
Creating our image schema
8
Creating our image upload resource
9
Trying out our image upload
10
Retrieving and deleting images
11
Another example: user avatars
12
Adding the avatar resource
13
Conclusion of this section

Database migrations

1
Introduction to this section
2
Getting a PostgreSQL database
3
What's in our starter code?
4
Postman collection for this section
5
Connecting to our remote database
6
Initialising Flask-Migrate and Alembic
7
Creating our initial table structure
8
Our first database migration
9
Checking the Alembic script (important!)
10
Adding a new column with migrations
11
Problems that can happen while migrating
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.6
4.6 out of 5
118 Ratings

Detailed Rating

Stars 5
72
Stars 4
31
Stars 3
12
Stars 2
1
Stars 1
2
47d7c74a95aa7ceedf57bb5faa534d11
30-Day Money-Back Guarantee

Includes

13 hours on-demand video
11 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion