Курс "Продвинутый FastAPI для продолжающих" предназначен для разработчиков, которые уже знакомы с основами FastAPI и хотят углубить свои знания, освоить передовые практики и научиться строить высокопроизводительные, масштабируемые и хорошо структурированные API. Данный курс является продолжением курса «FastAPI для начинающих», который получил Приз зрительских симпатий 2024! Для кого этот курс: Курс будет полезен для продолжающих свое изучение создания API используя FastAPI. Начальные требования: Для прохождения курса необходимы знания Python, ООП, SQL и иметь базовые знания FastAPI. Программа: Раздел 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 для синхронного и асинхронного кода, тестировать защищенные конечные точки и обеспечивать изоляцию тестов для надежных результатов.