Learning Platform
Глоссарий Troubleshooting
Урок 01.02 · 15 мин
Начальный
REST APIУчебный планПрогрессия

Обзор 15 модулей

В этом уроке — карта всего курса. Цель не запомнить, а получить ощущение, что вас ждёт впереди: какие темы пойдут когда, что зависит от чего, и в какой момент урок «настоящего инструмента» станет применим в реальной работе.

Курс структурирован как пирамида. Каждый последующий модуль опирается на предыдущие. Пропускать модули можно — но в большинстве случаев это себе во вред: пропустив модуль про HTTP-методы, вы не поймёте принципы REST; пропустив REST — потеряетесь в OpenAPI; и так далее.


Структура курса в одной диаграмме

Дорожная карта курса

15 модулей, разбитые на 4 содержательных блока. Стрелки -- направление обязательной зависимости.

00-04Фундамент: введение, HTTP-протокол, HTTP в проде, форматы данных, REST принципы. Без этого блока остальное не имеет смысла
dependencies
05-08Ежедневная работа Junior DE: Python-клиенты, OpenAPI, аутентификация, пагинация и устойчивость
09-11Beyond REST: GraphQL, gRPC, real-time API, бинарные форматы. То, что нужно для роли Middle
dependencies
12-13Production: тестирование API и финальный capstone-проект (multi-source ETL pipeline)

Модули 00-04: Фундамент

Цель блока — за 12-15 часов вы должны полностью понимать, что происходит между клиентом и сервером, когда curl отправляет запрос. Если после этого блока вы ещё не уверены — не идите дальше, перечитайте.

Модули 00-04 -- фундамент
00 Intro3 урока: про курс, обзор модулей, как учиться. ~30 минут чтения
01 HTTP foundations5 уроков: история HTTP, анатомия запроса/ответа, методы, статус-коды, заголовки. КЛЮЧЕВОЙ модуль, ~3 часа
02 HTTP в продеHTTPS/TLS handshake, кэширование (Cache-Control, ETag), CORS, проксирование. ~3 часа
03 Форматы данныхJSON (тип-неточность, числа), CSV (диалекты, escape), YAML, XML (legacy), JSONL для стриминга, MessagePack. ~3 часа
04 REST принципыResources, идемпотентность, versioning (URL/header), error handling, HATEOAS. ~3 часа

Особое внимание модулю 2 — это самый важный модуль курса. Если вы поймёте, что HTTP — это текстовый stateless протокол поверх TCP, и сможете прочитать raw HTTP-обмен — всё остальное в курсе будет лёгким. Если не поймёте — будете путаться, почему requests.get иногда возвращает не то, что ожидалось.


requests и httpx: введение в HTTP-клиенты Python

Модули 05-08: Ежедневная работа

Здесь начинается «настоящая жизнь» Junior DE. Вы будете писать Python-клиентов, читать OpenAPI-схемы партнёров, разбираться с OAuth2-аутентификацией и обрабатывать пагинацию + rate-limits.

Модули 05-08 -- ежедневная работа
05 Python clientsrequests 2.34 (sync, де-факто стандарт), httpx 0.28 (sync + async), Session/Client объекты, retries, timeouts, connection pooling
06 OpenAPIЧтение спецификаций OpenAPI 3.1 (с обзором 3.2), Swagger UI, генерация Python-клиентов через openapi-python-client
07 AuthBasic auth, API keys, Bearer tokens, OAuth2 flows (Authorization Code + PKCE, Client Credentials), JWT (структура, валидация)
08 ResilienceCursor/offset/keyset пагинация, rate limits (429 + Retry-After), exponential backoff, circuit breaker через tenacity

Это самый объёмный блок курса — около 18-20 часов. Здесь начинается реальная разница между Junior, который умеет интегрироваться с любым API, и Junior, который копирует чужие скрипты.

WARNING

Не пропускайте модуль 9 «Pagination + Resilience». Junior, который не умеет правильно обрабатывать 429 и пагинацию, будет терять данные в первый же день работы. Cursor pagination + exponential backoff — это инструменты, без которых production-pipeline не выживет.


Модули 09-11: Beyond REST

В этом блоке — переход от REST к остальным протоколам, с которыми сталкивается Junior DE на работе. GraphQL для сложных запросов, gRPC для high-performance internal API, real-time через webhooks/SSE/WebSocket, и бинарные форматы Avro/Parquet, которые становятся стандартом для DE-стека.

Модули 09-11 -- beyond REST
09 Beyond RESTGraphQL (схема, queries, mutations, проблема N+1), gRPC + Protobuf (определение .proto, генерация Python кода, streaming RPC)
10 Real-timeWebhooks (приём + signature verification), SSE (Server-Sent Events для односторонних потоков), WebSocket (двусторонняя связь)
11 Binary formatsApache Avro (schema evolution, binary encoding), Parquet (columnar storage, компрессия, partitioning). Это то, что попадает в S3/data lake

После этого блока вы будете понимать, когда использовать что: REST для публичного API, GraphQL для гибких запросов с frontend, gRPC для internal микросервисов, webhooks для событий, Avro/Parquet для data lake.


Модули 12-13: Production

Финальный блок. Здесь — практики, без которых код в production падает: тестирование API через mocking и VCR, contract testing через pact (чтобы клиент и сервер не разъезжались), и финальный capstone — реальный multi-source ETL pipeline, который тянет данные из трёх API в Parquet.

Модули 12-13 -- production
12 API testingpytest для API тестов, responses/respx для мокинга, VCR.py для записи реальных HTTP, contract testing через pact
13 CapstoneРеальный кейс: тянем данные из 3 API (REST с pagination + GraphQL + webhooks), валидируем pydantic, сохраняем в Parquet с партиционированием

Рекомендации по темпу

Курс рассчитан на 50-55 часов чистого времени. Это включает чтение, упражнения и квизы, но не включает реальную работу над собственным проектом.

Варианты темпа прохождения курса
Спринт2 модуля в день. Не рекомендуется, мышечная память не успевает закрепиться. Можно для повторения, если вы уже что-то знали
Стандарт1 модуль за 2 дня. Рабочий темп. Утром или вечером 2-3 часа на модуль, упражнения, квиз
Спокойно1 модуль за 3 дня. Когда совмещаете с другими занятиями. Лучше для усвоения

Лично я рекомендую стандартный темп — модуль за 2 дня, 4-5 недель — с одной оговоркой: после модулей 01, 04, 07 устройте день паузы. Эти модули перегружены концептами, и мозгу нужно время «уложить» новое знание в долгосрочную память. После паузы вы вернётесь и обнаружите, что куски, которые казались мутными, стали очевидными.


Что после курса

Курс «REST API & Data Formats» — самостоятельный продукт, который закрывает интеграции с внешними сервисами. Дальше вам пригодятся:

  • Курс «Python (deep)» — concurrency, async, asyncio для параллельных запросов
  • Курс «Airflow» — оркестрация ETL-пайплайнов (всё, что вы напишете в этом курсе, оркестрируется в Airflow)
  • Курс «Storage Formats» — глубокое погружение в Parquet, Iceberg, Delta Lake
  • Курс «System Design для DE» — когда захотите идти на Middle

Все курсы бесплатные, на этой же платформе. Cross-link на них появится в каждом релевантном уроке.

В следующем уроке поговорим, как именно учиться: какие инструменты установить, как организовать sandbox, и почему httpie или curl параллельно с уроком обязательны.


Проверка знанийKnowledge check
Почему в курсе блок 'Фундамент' (модули 00-04) занимает примерно столько же времени, сколько весь блок 'Ежедневная работа' (модули 05-08)? Не лучше ли быстрее перейти к requests.get?
ОтветAnswer
Потому что фундамент -- это то, что определяет всё дальнейшее понимание. Если вы не понимаете HTTP-методы и идемпотентность (модули 01 и 04) -- вы будете писать код, который при retry дублирует записи на сервере. Если не понимаете форматы данных (модуль 4) -- будете терять точность при парсинге JSON-чисел и не понимать, почему CSV из Excel не парсится pandas. Опыт показывает: Junior, который потратил на фундамент 12 часов и понял глубоко, в итоге проходит остальной курс быстрее, чем Junior, который пробежал фундамент за 3 часа и теперь возвращается к каждой главе с вопросом 'а как это связано'. Не торопитесь -- фундамент окупится в каждом следующем модуле.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 4. Какие два модуля курса наиболее уникальны по сравнению с другими курсами по Airflow на рынке?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3