Ultimate Guide To Fastapi And Backend Development

Posted By: ELK1nG

Ultimate Guide To Fastapi And Backend Development
Published 5/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 15.75 GB | Duration: 22h 42m

Build REST APIs For The Modern Web. Learn FastAPI, SQL Database, OAuth2, Pytest, React and Docker

What you'll learn

Build a complete RESTful API for a delivery management system, adhering to best practices

Define Pydantic models for request and response data validation, ensuring type safety

Connect a FastAPI application to a SQL database (SQLite, PostgreSQL) and integrate with endpoints using dependency injection

Operate on SQL database with SQLModel and define One-to-Many and Many-to-Many SQL Relationships

Manage database schema changes with alembic migrations, upgrade, downgrade and auto-generate revisions

Implement secure authentication using OAuth2 Scheme in a FastAPI application, including email validation, login/logouts and password resets

Send Email and SMS notifications from a FastAPI application triggered by shipment events

Integrate Celery with a FastAPI application to offload time-consuming tasks to a background worker from an API Endpoint

Package a FastAPI Application with Docker and related services using Docker Compose

Deploy a FastAPI Application along with other services

Requirements

Python

HTML/JS (Optional)

Description

Unlock the Power of APIs with Python and FastAPI!Ready to transform your Python skills into building blazing-fast, production-ready APIs? This hands-on course is your definitive guide to crafting high-performance APIs using FastAPI and Python.Go beyond theory and build a complete backend API for a real-world Delivery Management System. You'll master essential backend concepts like the request/response cycle, data modeling, databases, asynchronous programming, and dependency injection – all while leveraging the power of FastAPI's built-in features: asynchronous speed, automatic data validation, OpenAPI support, and exceptional developer productivity.PythonEven though having a basic understanding of python is required, core language concepts like type hinting, decorator functions, context managers, async programming and others will still be covered.SQL DatabaseWe will cover databases and SQL from the basics. Especially if you're a beginner, we will first learn the need for structured databases, what SQL is, how to define tables and write SQL queries.Then we will integrate a SQLite database manually with our FastAPI application and then leverage modern tools like SQLModel to define database table schema and FastAPI's powerful dependency injection to provide database session to API endpoints.After covering the essentials, we will move onto advanced concepts like asynchronous database (PostgreSQL), manage schema changes with alembic migrations, define one-to-many and many-to-many SQL relationships and link models.User AuthenticationFastAPI has built-in support for OAuth2 Scheme. Implement secure user authentication with OAuth2 Password Flow and handle user signups, email verification of registered users, login, control access to endpoints with JWT, allow password resets and logout users.Email and SMS NotificationsIn our delivery management system, we will send email updates and sms to recipients on shipment updates. Like sending tracking links with email on order placed, shipment status updates, and sending verification codes or OTP as sms to recieve shipments.API TestingLearn the basics of the pytest - testing framework. Write and run simple tests, and use fixtures to manage test state. Then, write test for API endpoints with FastAPI's built-in test client.We will cover required concepts when testing APIs like setting up test databases, overriding dependencies, authentication in test functions and automate testing with schemathesis.Frontend?As a bonus, we will also cover frontend web development with React JS. Covering the essentials like components, state management, hooks, context providers and routing. Using modern and meme proof tools like Vite, Axios, React Router, Shadcn UI, and Tanstack React Query.DockerLearn the industry standard tool for packaging applications. We will cover the basics of docker and the essential concepts of containerisation. And run our API Server, PostgreSQL database, Redis and Celery background worker seamlessly with Docker Compose.If you're a Python developer looking to create fast, reliable, and modern web APIs, and if you're eager to understand and build the backend yourself, then this course is your perfect starting point.Join us in the first lesson and start building today!

Overview

Section 1: Introduction

Lecture 1 Curriculum Overview

Lecture 2 What are REST APIs?

Lecture 3 What is FastAPI?

Lecture 4 Why choose FastAPI?

Section 2: Getting Started

Lecture 5 Installation & Setup

Lecture 6 Installation (MacOS)

Lecture 7 API Endpoint

Lecture 8 API Documentation

Section 3: Path Parameter

Lecture 9 Type Hinting

Lecture 10 Function Decorator

Lecture 11 Path Parameter

Lecture 12 Route Ordering

Lecture 13 Simple Database

Section 4: Query Parameter

Lecture 14 Introduction

Lecture 15 HTTP Exception

Lecture 16 POST Method

Lecture 17 Request Body

Lecture 18 Path & Query Parameters

Section 5: CRUD Operations

Lecture 19 PUT Method

Lecture 20 PATCH Method

Lecture 21 DELETE Method

Section 6: Pydantic Model

Lecture 22 Why use Pydantic?

Lecture 23 Model Fields

Lecture 24 Python Enum

Lecture 25 Response Model

Lecture 26 Different Models

Lecture 27 Tips & Tricks

Section 7: SQL Database

Lecture 28 JSON

Lecture 29 What is SQL?

Lecture 30 SQLite Database

Lecture 31 Insert Row

Lecture 32 Fetch Row

Lecture 33 Primary Key

Lecture 34 Update Row

Lecture 35 SQL Query Parameters

Lecture 36 Database

Lecture 37 API Usage

Section 8: SQLModel

Lecture 38 Overview

Lecture 39 Context Manager

Lecture 40 sqlmodel

Lecture 41 Database Engine

Lecture 42 Server Lifespan

Lecture 43 Dependency Injection

Lecture 44 Annotated Type

Lecture 45 Session Dependency

Lecture 46 Database Model vs API Schema

Section 9: AsyncIO

Lecture 47 Synchronous Programming

Lecture 48 Async & Await

Lecture 49 Task

Lecture 50 Task Group

Section 10: PostgreSQL

Lecture 51 Overview

Lecture 52 Installation

Lecture 53 Environment Variables

Lecture 54 Async Session

Lecture 55 API Router

Lecture 56 Service Layer

Lecture 57 Dependency Chaining

Lecture 58 General Tips

Section 11: Register User

Lecture 59 Overview

Lecture 60 Seller Model

Lecture 61 Signup Endpoint

Lecture 62 Password Hash

Lecture 63 Seller Service

Section 12: Login User

Lecture 64 OAuth2 Overview

Lecture 65 Password Request Form

Lecture 66 Verify Password

Lecture 67 JWT

Lecture 68 Password Flow

Lecture 69 OAuth2 Scheme

Lecture 70 Decode JWT

Lecture 71 Identify User

Lecture 72 User Dependency

Lecture 73 Token Expiry

Lecture 74 API Client Authentication

Lecture 75 HTTP Bearer

Section 13: Logout User

Lecture 76 Overview

Lecture 77 Identify JWT

Lecture 78 Redis

Lecture 79 Token Blacklist

Section 14: SQL Relations

Lecture 80 Overview

Lecture 81 Foreign Keys

Lecture 82 UUID

Lecture 83 Relate User

Lecture 84 Debugging

Section 15: Alembic - Database Migrations

Lecture 85 Setup

Lecture 86 Revision Script

Lecture 87 Autogenerate Revision

Section 16: Delivery Partner

Lecture 88 Overview

Lecture 89 Database Model

Lecture 90 Partner Endpoints

Lecture 91 Base Service

Lecture 92 User Service

Lecture 93 Debugging

Section 17: Shipment Event

Lecture 94 Overview

Lecture 95 Event Model

Lecture 96 Service Layer

Lecture 97 Event Timeline

Lecture 98 Debugging Endpoints

Lecture 99 Cancel Shipment

Section 18: Send Mail

Lecture 100 Mail Client Setup

Lecture 101 Event Updates

Lecture 102 Background Tasks

Lecture 103 Mail Template

Section 19: Custom Response

Lecture 104 HTML Response

Lecture 105 Template Response

Lecture 106 Response Class

Section 20: Email Confirmation

Lecture 107 Overview

Lecture 108 URL Safe Token

Lecture 109 Registration Email

Lecture 110 Verify Endpoint

Section 21: Password Reset

Lecture 111 Overview

Lecture 112 Reset Endpoint

Lecture 113 Password Reset Form

Section 22: SMS

Lecture 114 Overview

Lecture 115 Twilio Setup

Lecture 116 Send SMS

Lecture 117 Verification Code

Section 23: Review

Lecture 118 Overview

Lecture 119 Review Model

Lecture 120 Endpoints

Lecture 121 Review Link

Lecture 122 HTML Form

Section 24: Celery

Lecture 123 Overview

Lecture 124 Background Worker

Lecture 125 Task Function

Lecture 126 Flower Monitoring

Section 25: Many to Many

Lecture 127 Overview

Lecture 128 Link Model

Lecture 129 Shipment Tags

Lecture 130 Tagged Shipments

Lecture 131 Extra Fields

Section 26: Error Handling

Lecture 132 Exception

Lecture 133 Add Handlers

Lecture 134 Other Exceptions

Section 27: API Middleware

Lecture 135 Add Middleware

Lecture 136 CORS Middleware

Section 28: API Documentation

Lecture 137 General Metadata

Lecture 138 Endpoint Metadata

Lecture 139 Model Metadata

Section 29: pytest

Lecture 140 Write Test

Lecture 141 Run Test

Lecture 142 Test State Example

Lecture 143 Pytest Fixture

Lecture 144 Fixture Scope

Section 30: API Testing

Lecture 145 Test Endpoint

Lecture 146 Async Test

Lecture 147 Override Dependency

Lecture 148 Test Database

Lecture 149 Authentication

Lecture 150 Automate Testing

Section 31: React JS

Lecture 151 Overview

Lecture 152 Setup

Lecture 153 Component State

Lecture 154 Forms

Lecture 155 Context Provider

Lecture 156 Axios Client

Lecture 157 Swagger Typescript API

Lecture 158 Tanstack React Query

Section 32: Frontend

Lecture 159 Setup

Lecture 160 Login Page

Lecture 161 Route Authentication

Lecture 162 User Type

Lecture 163 Dashboard Page

Lecture 164 Account Page

Lecture 165 Submit Shipment Page

Lecture 166 Update Shipment Page

Lecture 167 QR Scanning

Section 33: Docker

Lecture 168 Introduction

Lecture 169 Docker Containers

Lecture 170 API Server

Lecture 171 PostgreSQL Database

Lecture 172 Docker Compose

Lecture 173 Backend

Section 34: Deployment

Lecture 174 Render

Lecture 175 PostgreSQL & Redis

Lecture 176 Web Service

Section 35: API Gateway

Lecture 177 Introduction

Lecture 178 AWS CLI Setup

Lecture 179 AWS Elastic Container Registry

Lecture 180 AWS App Runner

Lecture 181 AWS API Gateway

Lecture 182 Caching

Section 36: Tips & Tricks

Lecture 183 File Structure

Lecture 184 Pagination

Lecture 185 Logging

Beginner Python Developers