Курс на Stepik
Обложка курса «Python: Антикризисный FastAPI» на Stepik
5 000 ₽

Python: Антикризисный FastAPI 5.000

Открыть на
STEPIK.ORG

Пишем полноценный REST API на FastAPI — от приложения в один файл до production-ready сервиса с базой данных, авторизацией, тестами и хранилищем файлов. Один коммит — один шаг: видно, как сервис растёт строчка за строчкой, на реальном проекте, а не на очередном «Hello World». Курс для тех, кто уже знает базу Python и хочет наконец написать что-то серьёзное

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Python: Антикризисный FastAPI»Учеников на курсе 52
Сертификаты, выданные на курсе «Python: Антикризисный FastAPI»Сертификатов выдано 1
Отзывы о курсе «Python: Антикризисный FastAPI»Отзывов получено 1
Рейтинг курса «Python: Антикризисный FastAPI»Рейтинг курса 5.000
Уроки в курсе «Python: Антикризисный FastAPI»Количество уроков 178
Тесты в курсе «Python: Антикризисный FastAPI»Количество квизов 893
Задачи с кодом в курсе «Python: Антикризисный FastAPI»Количество задач с кодом 3
Время прохождения курса «Python: Антикризисный FastAPI»Время прохождения курса
Стоимость курса «Python: Антикризисный FastAPI»Стоимость курса 5 000 ₽
Обновления курса «Python: Антикризисный FastAPI»Обновления курса
Дата публикации курса «Python: Антикризисный FastAPI»Дата публикации курса
Последнее обновление курса «Python: Антикризисный FastAPI»Последнее обновление
Сложность normal

Содержание курса

Разделы в курсе «Python: Антикризисный FastAPI» 21 раздел Уроки в курсе «Python: Антикризисный FastAPI» 178 уроков Тесты в курсе «Python: Антикризисный FastAPI» 893 теста Задачи в курсе «Python: Антикризисный FastAPI» 3 задачи Время прохождения курса «Python: Антикризисный FastAPI» 28 ч. Последнее обновление курса «Python: Антикризисный FastAPI» обн. 27 августа 2026

Первые шаги

1 урок
1. Python–старт

Основы REST API и HTTP (общая теория)

2 урока
1. Теория ключевых аспектов
2. Есть вопросик...

Первое приложение на FastAPI

9 уроков
1. Инициализация проекта в VS Code
2. От def к async def
3. Техническое задание на сервис
4. Первый эндпоинт со списком товаров
5. Аннотации типов для PRODUCTS
6. Получение товара по ID и обработка 404
7. Поиск товаров по тексту
8. Фильтр товаров по категории
9. Самостоятельная работа: фильтр по диапазону цен

CRUD: создание, обновление и удаление товаров

8 уроков
1. Создание товара через POST
2. Ручная валидация полей в POST
3. Сбор всех ошибок валидации в одном ответе
4. Пример тела запроса в Swagger
5. Полная замена товара через PUT
6. Удаление товара через DELETE
7. От example к examples в OpenAPI
8. Подготовка: Pydantic v2 в зависимостях

Pydantic, обработка ошибок и структура проекта

11 уроков
1. Pydantic-модели ProductBase и Product
2. response_model и доступ через точку в GET
3. Field-валидация и ProductCreate в POST
4. Самостоятельная работа: Pydantic в PUT
5. Доступ через точку в DELETE
6. Рефакторинг
7. Кастомные русские сообщения об ошибках
8. Локализация ошибки product_id
9. Рефакторинг: выносим приложение в пакет app
10. Pydantic-схемы — в app/schemas.py
11. Обработка ошибок — в app/errors.py

Основы баз данных и SQL (общая теория)

19 уроков
1. Зачем нужны базы данных
2. Установка и настройка окружения для работы с SQLite
3. Основные концепции структуры базы данных
4. Отношения в базе данных
5. Что такое SQL и система типов
6. Создание таблиц
7. Ограничения SQL
8. Добавление записей
9. Самостоятельная работа: наполнение данными
10. Выборка данных
11. Фильтрация данных
12. Оператор обновления данных
13. Самостоятельная работа на обновление данных
14. Оператор удаления данных
15. Самостоятельная работа: создание и наполнение базы данных
16. Сложные концепции
17. Самостоятельная работа на сложные запросы
18. Сложные запросы
19. Самостоятельная работа на объединение

База данных SQLite и слой репозитория

14 уроков
1. Подключаем SQLite через SQLAlchemy
2. Асинхронная настройка SQLAlchemy
3. Инициализация БД и lifespan FastAPI
4. Клиенты для работы с БД и .gitignore
5. Сидирование БД начальными данными
6. Репозиторий и dependency injection
7. Получение списка продуктов из БД
8. Получение по id и функция ensure_found
9. Поиск с пользовательской SQL-функцией PY_LOWER
10. Фильтр по категории через PY_LOWER
11. Фильтр по диапазону цен через BETWEEN и COALESCE
12. Обновление товара через репозиторий
13. Удаление через репозиторий и финал перехода
14. Уникальность имени и IntegrityError → 409 Conflict

Переход на SQLAlchemy ORM

12 уроков
1. ORM-модель ProductORM на DeclarativeBase
2. Инициализация схемы через ORM-модель
3. Seed на ORM с проверкой «уже сидировано»
4. list_all через select() и from_attributes
5. get_by_id через session.get
6. Создание товара через session.add и refresh
7. Обновление через setattr и dirty-tracking
8. Унификация возвращаемых типов через model_validate
9. Удаление через ORM с возвратом сущности
10. Поиск на SQLAlchemy Core: select, or_, func
11. Фильтры по категории и цене на ORM-запросах
12. Подведение итогов: текущее состояние сервиса

Модуль 6. Модульные роутеры и пользователи

7 уроков
1. APIRouter и модульная регистрация маршрутов
2. Вынос продуктовых эндпоинтов в отдельный роутер
3. ORM-модели пользователей и ролей
4. Сидирование admin-пользователя и привязка товаров
5. Схемы и каркас репозитория пользователей
6. Реализация методов UserRepository
7. Регистрация пользователей через роутер auth

Аутентификация и авторизация: JWT и роли

11 уроков
1. JWT-токены: теория аутентификации
2. Создание и проверка JWT через PyJWT
3. Логин и OAuth2PasswordRequestForm
4. get_current_user и CurrentUser-зависимость
5. Первый защищённый эндпоинт: search
6. Проверка владельца и роли в продуктовых эндпоинтах
7. Хеширование паролей через bcrypt
8. Роутер users и эндпоинт /users/me
9. Смена пароля через PATCH /users/me/password
10. AdminUser-зависимость и список пользователей
11. Активация и деактивация пользователей

Аудит действий через event listeners

8 уроков
1. AuditLog: модель, репозиторий, схема
2. Аудит-логирование через отдельный сервис
3. Эндпоинты просмотра аудита
4. Теория
5. ORM-listener'ы и ContextVar для actor_id
6. HTTP middleware для actor_id
7. Уборка явных вызовов audit.record
8. Аудит изменений продуктов через ORM events

Переезд на PostgreSQL и Docker

12 уроков
1. Подготовка к переезду на PostgreSQL: установка Docker
2. Экспресс-погружение в Docker
3. docker-compose.yml с PostgreSQL
4. Переезд на PostgreSQL через asyncpg
5. Нормализация поиска через lower и replace для Postgres
6. Dockerfile для приложения
7. Pydantic Settings и переменные окружения
8. SECRET_KEY и TTL токена в env-переменных
9. ADMIN_PASSWORD в переменных окружения
10. FastAPI в Compose рядом с Postgres
11. Compose-профили dev и prod
12. Makefile: алиасы для частых команд

Миграции схемы через Alembic

8 уроков
1. Миграции схемы БД: зачем нужны
2. Установка Alembic и структура миграций
3. env.py: метаданные моделей и URL из Settings
4. Первая миграция: init schema
5. Запуск миграций на старте приложения
6. Поле created_at и автогенерация миграции
7. Переименование колонки и почему Alembic его «не видит»
8. Alembic в Dockerfile и команды миграций в Makefile

Тестирование: от юнитов до интеграционных тестов

12 уроков
1. pytest: первая инфраструктура тестов
2. Формы assert и измерение покрытия
3. Первые «живые» тесты — модуль security
4. А что, если ты тестировщик: анализ граничных значений
5. FastAPI TestClient: API-тест без поднятия сервера
6. Async-тесты в pytest и режим asyncio_mode = "auto"
7. Тестируем Pydantic-схему: фикстуры и валидация
8. Отдельный тестовый Postgres в docker-compose
9. conftest.py: тестовый engine, sessionmaker и session
10. Проверка изоляции тестов между прогонами
11. AsyncClient и override зависимостей FastAPI
12. Интеграционный тест GET /products

Версионирование API и генерация тестовых данных

3 урока
1. Версионирование API через префикс /api/v1
2. Генератор тестовых продуктов на Faker
3. Подключаем фабрику к seed_db и упираемся в

Хранилище файлов: S3, MinIO и модель изображений

6 уроков
1. Хранилище картинок: S3, MinIO и aioboto3
2. S3-настройки и async-обёртка S3Storage
3. ensure_bucket: автосоздание S3-бакета при старте
4. Публичная политика чтения S3-бакета
5. ProductImageORM: модель картинки и связь 1-к-1
6. Сидинг placeholder в S3 и в product_image

Пагинация и API v2

5 уроков
1. Универсальная пагинация: Page[T] и PageParams
2. v2-поиск по имени и описанию с пагинацией
3. v2-роутер продуктов и пагинированный list
4. v2-фильтрация по категории с пагинацией
5. v2-фильтрация по цене с опциональными границами

Загрузка и управление изображениями товаров

5 уроков
1. Эндпоинт картинки товара
2. put_object и delete_object в S3Storage
3. upsert_image и delete_image в репозитории
4. POST и DELETE для картинки товара
5. Проблема: удалённые товары оставляют картинки в S3

Модуль 16. Модуль поддержки пользователей — итоговый проект

18 уроков
1. Каркас модуля поддержки: пакет app/support
2. SupportStatus и SenderRole: enum-ы для поддержки
3. ConversationORM: модель диалога поддержки
4. ConversationMessageORM
5. Индексы и миграция для таблиц поддержки
6. Связь с админом и Pydantic-схемы модуля поддержки
7. SupportRepository: каркас и методы чтения
8. SupportRepository: остальные методы репозитория
9. Пользовательский роутер поддержки и создание обращения
10. Пагинированный список обращений пользователя
11. Просмотр обращения и проверка владельца
12. Отправка сообщения в обращение
13. Отметка обращения как прочитанного
14. Админский роутер: список всех обращений
15. Счётчики обращений для админки
16. Просмотр любого обращения админом
17. Ответ админа на обращение
18. Закрытие обращения: владелец или админ

Публичный API и финальные штрихи

6 уроков
1. Флаг featured для продуктов
2. Выборка избранных товаров с добивкой случайными
3. Публичный endpoint избранных товаров
4. Категории с количеством товаров (агрегация)
5. Расширение seed: реальные картинки товаров
6. CORS: пускаем фронтенд к API

Что дальше

1 урок
1. Возможно, тут появится продолжение...