About This Course
Are you feeling discouraged because your apps aren’t communicating?
Get inspired again with our Python API Development course. It dives into building secure, scalable APIs with Python and Flask, connecting your code to powerful databases, and throwing in features like user authentication, email confirmation, and image handling.
By the time you’re done, you’ll not only understand APIs – you’ll own them!
Skills You’ll Get
- Build RESTful APIs using Python and Flask.
- Master HTTP methods and status codes.
- Configure secure endpoints with Flask-JWT-Extended.
- Implement database manipulation with SQLAlchemy and ORM.
- Design and manage data models with Marshmallow for serialization.
- Integrate email services like Mailgun for user activation.
- Create image upload and manipulation features with Flask-Uploads and Pillow.
- Optimize API performance using caching and rate-limiting techniques.
- Deploy applications to Heroku and manage environment variables.
- Test API endpoints using tools like curl, httpie, and Postman.
- Use JWT and refresh tokens to develop a user authentication system.
- Retrieve data using pagination, search, and sorting.
- Build a complete recipe management application from scratch.
Lesson Plan
Preface
- About the Course
Your First Step
- Introduction
- Understanding API
- RESTful API
- HTTP Protocol
- HTTP Methods and CRUD
- The JSON Format
- HTTP Status Codes
- Open API
- The Flask Web Framework
- Building a Simple Recipe Management Application
- Using curl or httpie to Test All the Endpoints
- Postman
- Summary
Starting to Build Our Project
- Introduction
- What is Flask-RESTful?
- Virtual Environment
- Creating a Recipe Model
- Configuring Endpoints
- Making HTTP Requests to the Flask API Using curl and httpie
- Summary
Manipulating a Database with SQLAlchemy
- Introduction
- Databases
- SQL
- ORM
- Defining Our Models
- Password Hashing
- Summary
Authentication Services and Security with JWT
- Introduction
- JWT
- Flask-JWT-Extended
- Designing the Methods in the Recipe Model
- Refresh Tokens
- The User Logout Mechanism
- Summary
Object Serialization with marshmallow
- Introduction
- Serialization versus Deserialization
- marshmallow
- A Simple Schema
- UserSchema Design
- RecipeSchema Design
- The PATCH Method
- Summary
Email Confirmation
- Introduction
- Mailgun
- User Account Activation Workflow
- HTML Format Email
- Summary
Working with Images
- Introduction
- Building the User Avatar Function
- Flask-Uploads
- Image Resizing and Compression
- Introduction to Pillow
- Summary
Pagination, Searching, and Ordering
- Introduction
- Pagination
- Paginated APIs
- Recipe Searching
- Sorting and Ordering
- Summary
Building More Features
- Introduction
- Caching
- Flask-Caching
- API Rate Limiting
- Flask-Limiter
- Summary
Deployment
- Introduction
- Deployment
- Comparing SaaS, PaaS, and IaaS
- The Heroku Platform
- Configuration Handling in Smilecook
- Heroku Application
- Heroku Add-Ons
- Setting Up Environment Variables for the Heroku App
- Setting Up Variables in Postman
- Setting Up the Front-end Interface to Work with the Smilecook API
- Summary
Hands-0n LAB Activities
Your First Step
- Building a Flask Application Using PyCharm
- Managing Recipes with Flask
Starting to Build Our Project
- Analyzing the Recipe Model and Testing its Endpoints
Manipulating a Database with SQLAlchemy
- Using Flask-Migrate to Build a Database Upgrade Script
Authentication Services and Security with JWT
- Analyzing a User Login Function
- Analyzing the Logout Function
Object Serialization with marshmallow
- Using marshmallow to Validate the User Data
- Analyzing RecipeSchema
Working with Images
- Adding the avatar_image Attribute to the User Model
Deployment
- Analyzing How to Segregate Application Configura…ween the Development and Production Environments





