Чему вы научитесь
- Работать с фреймворком FastAPI
- Писать свои API сервисы
- Валидировать данные через Pydantic
- Научитесь асинхронно работать с БД через SQLAlchemy и выполнять миграции используя Alembic
- Создавать аутентификацию на основе базовых методов и OAuth2 и JWT
- Упаковывать FastAPI в Docker Compose
- Выполнять деплой проектов на сервер
- Создавать гибкие API
- Эффективно работать с данными с помощью Pydantic
- Управлять файлами в FastAPI
- Проектировать масштабируемые приложения, применяя различные архитектурные паттерны
- Разрабатывать и интегрировать микросервисы
- Оптимизировать производительность API
- Писать тесты для FastAPI-приложений
О программе
Данный курс охватывает целый ряд тем разработки приложений FastAPI на языке Python, с нулевого до продвинутого уровня. Начальные знания по FastAPI не требуются.
Курс 1
Раздел 1: «Введение в API» мы познакомимся с API, архитектурой REST API. Изучим основные HTTP методы и коды ответа сервера.
Раздел 2: «Знакомство с FastAPI» мы познакомимся с основами FastAPI и создадим свое первое API, возвращающее "Hello World". Также мы подробно изучим процесс создания конечных точек с использованием системы маршрутизации в FastAPI. И научимся валидировать параметры, получаемые из пути и тела запросов.
Раздел 3: «Создание CRUD-приложения на FastAPI» мы спроектируем и реализуем простой CRUD проект. Познакомимся с основными методами запросов GET, POST, PUT, DELETE, научимся создавать и валидировать модели класса Pydantic. Изучим моделирование ответов, обработку ошибок и коды состояния. Обсудим, как можно использовать шаблоны Jinja для создания представлений и вывода ответов из API.
Раздел 4: «Внедрения зависимостей» мы рассмотрим шаблон внедрения зависимостей, используемый FastAPI для управления экземплярами и структурой проекта с помощью директивы Depends() и сторонних модулей расширения.
Раздел 5: «Интернет магазин на FastAPI» мы рассмотрим основные возможности FastAPI, научимся правильно структурировать проект. Узнаем об использовании APIRouter для организации проектов. Создадим подключение к БД через SQLAlchemy, научимся использовать Alembic для выполнения миграций. Научимся использовать сессии и напишем свои первые запросы, которые в дальнейшем мы сделаем асинхронными. Реализуем аутентификацию используя HTTP Basic Auth, OAuth2, и научимся генерировать JWT токен. Где в дальнейшем будем использовать его, для проверки прав доступа к различным конечным точкам нашего API.
Раздел 6: «Продвинутые возможности в FastAPI» мы рассмотрим версионирование API сервисов, логгирование. Изучим возможности промежуточного ПО, CORS, Session. Также рассмотрим Celery и Redis для создания и управления асинхронными фоновыми задачами. И в заключении раздела напишем веб чат используя FastAPI и WebSocket.
Раздел 7: «Docker + FastAPI» мы рассмотрим основные концепции Docker и на примере создадим свой контейнер с Python проектом. Далее мы упакуем FastAPI, PostgreSQL, NGINX в контейнеры и подготовим проект к деплою.
Раздел 8. «Деплой проекта через Docker» мы рассмотрим деплой проекта FastAPI, вместе с базой данных PostgreSQL, веб сервером Gunicorn и Nginx на контейнерах Docker с Compose.
Курс 2
Раздел 1: Продвинутые возможности FastAPI
Мы углубимся в продвинутые инструменты FastAPI. Вы изучите вложенные маршрутизаторы (APIRouter), различные подходы к версионированию API (через заголовки Accept, Path или Header), создание пользовательских классов APIRoute для расширения функциональности и использование Lifespan Events для управления жизненным циклом приложения. Также мы рассмотрим глобальную конфигурацию FastAPI и настройку классов Response для точного контроля ответов.
Раздел 2: Продвинутая работа с Pydantic
Мы подробно разберем продвинутые возможности Pydantic. Вы научитесь работать с вложенными моделями, циклическими зависимостями, расширенной валидацией и модификацией данных. Мы изучим Pydantic Generics для создания гибких моделей, а также тонкости сериализации и десериализации. Вы узнаете, как настраивать поведение Pydantic с помощью ConfigDict.
Раздел 3: Работа с файлами в FastAPI
В этом разделе мы разберем загрузку и скачивание файлов, их валидацию и обработку. Особое внимание уделим потоковой передаче данных (Streaming) для эффективной работы с большими файлами.
Раздел 4: Архитектуры в FastAPI
Мы начнем с простых монолитных структур и постепенно перейдем к более сложным архитектурным паттернам: модульной структуре, многоуровневой архитектуре (Layered Architecture), луковой архитектуре (Onion Architecture) и чистой архитектуре (Clean Architecture). Вы научитесь проектировать легко поддерживаемые и масштабируемые приложения.
Раздел 5: Микросервисы с FastAPI
Мы изучим создание нескольких FastAPI-сервисов и организацию их взаимодействия через HTTP и брокер сообщений RabbitMQ. Вы узнаете, как внедрить концепцию API Gateway для эффективного управления сервисами.
Раздел 6: Производительность и оптимизация
В этом разделе мы разберем методы оптимизации приложений FastAPI. Вы научитесь внедрять кэширование, настраивать Rate Limiting для защиты от перегрузок, а также использовать Prometheus и Grafana для мониторинга и логирования. Мы также рассмотрим трассировку запросов с OpenTelemetry для анализа производительности API.
Раздел 7: Тестирование FastAPI-приложений
Мы изучим, как использовать TestClient для тестирования API. Вы научитесь писать эффективные тесты с помощью pytest для синхронного и асинхронного кода, тестировать защищенные конечные точки и обеспечивать изоляцию тестов для надежных результатов.
Что внутри
В комплект входят 2 курса общей стоимостью 4 199,30 ₽.
Для кого эта программа
Начальные требования
Обладать хорошими практическими знаниями Python и иметь знания HTML, SQL.
Наши преподаватели
Как проходит обучение
Курс состоит из лекций по теории, тестов, практических заданий(задач) и лекций по практическому созданию различных веб-проектов. Шаг за шагом, мы будем совместно создавать и добавлять функциональность для них.
Содержание
Что вы получаете
- Навыки по созданию API используя FastAPI
- Глубокое понимание FastAPI
- Навыки проектирования архитектур
- Опыт работы с микросервисами
- Умение оптимизировать производительность
- Мастерство тестирования
- Конкурентное преимущество