Чему вы научитесь
- создавать REST API на FastAPI и проектировать HTTP-маршруты
- разделять backend на routers, dependencies, services и repositories
- описывать и валидировать данные с помощью Pydantic
- работать с базой данных через асинхронный SQLAlchemy
- управлять изменениями схемы базы с помощью Alembic
- реализовывать регистрацию, JWT-аутентификацию и разграничение доступа по ролям
- связывать пользователей, курсы, уроки, прогресс, избранное и отзывы
- писать автоматические тесты API с pytest и TestClient
- работать с OpenAPI и Swagger UI
- настраивать приложение через переменные окружения
- добавлять health/readiness-проверки и request id
- собирать и запускать backend в Docker и Docker Compose
- подключать PostgreSQL и запускать API вместе с базой данных через Docker Compose
О курсе
Для кого этот курс
Курс подойдёт тем, кто уже пишет на Python и хочет перейти к backend-разработке на FastAPI.
Он рассчитан на тех, кто:
– уже знаком с функциями, коллекциями, модулями, исключениями, классами и базовыми принципами ООП;
– ещё не работал с FastAPI или только начал с ним знакомиться;
– хочет понять, как маршруты, схемы данных, зависимости, сервисы, репозитории и база данных соединяются в одном backend-приложении;
– хочет разобраться с SQLAlchemy, Alembic, JWT-аутентификацией, ролями, тестами, PostgreSQL и Docker;
– предпочитает изучать backend не на отдельных примерах, а последовательно развивая один учебный проект.
Курс не рассчитан на первое знакомство с Python. До начала обучения уже должен быть опыт написания небольших программ на Python и понимание базовых принципов ООП.
Начальные требования
Курс рассчитан на тех, кто уже умеет писать небольшие программы на Python.
Перед началом нужно:
• понимать функции, аргументы и возвращаемые значения;
• работать со списками, словарями, кортежами и другими основными коллекциями;
• понимать классы, объекты, методы, self, __init__ и базовые принципы ООП;
• работать с модулями и импортами;
• понимать исключения и try/except;
• быть знакомым с базовыми аннотациями типов: str, int, list[str], str | None.
Знание FastAPI, SQLAlchemy, Alembic, pytest, Docker и PostgreSQL не требуется – эти инструменты разбираются по ходу курса.
В курсе используется Python 3.12. Основная среда в примерах – PyCharm на Windows. Понадобится также работать с терминалом, но необходимые команды показываются по ходу обучения.
Преподаватели курса
Как проходит обучение
Курс строится вокруг одного учебного проекта – CourseHub API. Он развивается вместе с обучением: сначала появляются простые HTTP-маршруты, затем структура приложения, база данных, авторизация, тесты и контейнерный запуск.
В процессе обучения:
• теория разбирается в текстовых уроках с кодом, схемами и примерами;
• после новых тем идут тесты и задачи на программирование;
• CourseHub последовательно собирается и запускается в PyCharm;
• API проверяется через Swagger UI и автоматические тесты;
• команды выполняются в терминале, а проект работает в виртуальном окружении;
• ближе к финалу приложение запускается через Docker Compose вместе с PostgreSQL.
Задачи можно выполнять прямо в IDE. Для них используется собственный PROкод Checker: код пишется в PyCharm или другой IDE, а проверка запускается одной командой из терминала. Результат появляется там же. После успешной проверки готовое решение остаётся отправить в Stepik, чтобы завершить шаг курса.
Новые темы сразу применяются в CourseHub: добавляются маршруты, схемы, зависимости, сервисы, репозитории, таблицы базы данных и тесты. Поэтому проект растёт постепенно, а каждая следующая часть опирается на уже собранную.
К финалу получается цельный учебный backend-проект, на котором можно проследить путь от первых маршрутов FastAPI до базы данных, тестирования, PostgreSQL и Docker.
Сертификат
Что вы получите
- собранный по ходу обучения учебный backend-проект CourseHub API – от первых HTTP-маршрутов до PostgreSQL и Docker Compose;
- практический опыт разработки API на FastAPI с Pydantic, SQLAlchemy, Alembic и pytest;
- понимание того, как в одном backend-приложении работают routers, dependencies, services и repositories;
- опыт реализации JWT-аутентификации, ролей, записи на курсы, прогресса обучения, избранного и отзывов;
- практику работы с базой данных, миграциями, Swagger UI, OpenAPI и автоматическими тестами;
- опыт работы с PyCharm, терминалом, виртуальным окружением, Docker и PostgreSQL;
- практику решения и проверки задач прямо из IDE с помощью PROкод Checker;
- код CourseHub, который можно дальше изменять, дополнять и использовать как основу для собственных учебных backend-проектов;
- сертификат Stepik после успешного прохождения курса.