Пагинация API на Python: потери, дубли и бесконечный цикл

Четыре инцидента с пагинацией API: читаете трассу, чините два загрузчика, пишете две проверки и прогоняете решения через 29 сценариев. Python, без установки пакетов.
Начальный уровень

Чему вы научитесь

  • Находить по трассе запросов, где загрузчик потерял или задвоил записи
  • Останавливать обход так, чтобы он не терял последнюю страницу и не зацикливался
  • Обходить данные по закладке (курсору), когда они меняются прямо во время выгрузки
  • Находить в трассе уже прошедшей выгрузки признаки потерь, не запуская ее заново
  • Прогонять свои решения через набор проверочных сценариев и читать отчет

О курсе

Скрипт забрал данные из API, ошибок нет, в логе "готово". Через неделю выясняется, что части записей нет, а часть задвоена. Этот модуль про то, как это происходит и как это ловить.

Каждый урок - инцидент в выдуманной сети велопроката "ВелоКруг": письмо с симптомом, трасса запросов, сломанный код. Вы находите причину, чините и доказываете починку на тренажере сбоев.

Как выглядит отчет тренажера:

Инцидент 3. Обход по закладке: данные меняются на ходу  -  7 из 7
  [прошел] во время обхода появилась поездка 106 - дублей нет
  [прошел] во время обхода удалили уже полученную поездку 104 - пропусков нет
  [прошел] API не обращает внимания на закладку
Итог: пройдено 29 из 29 сценариев.

Как автопроверка объясняет ошибку:

Сценарий 'последняя страница неполная': ожидалось [7, 6, 5, 4, 3, 2, 1],
получено [7, 6, 5, 4, 3, 2]. Запросы: [(0, [7, 6, 5]), (3, [4, 3, 2]), (6, [1])]

Границы: тренажер проверяет учебные функции на учебном API в памяти. Отчет говорит о его сценариях и не доказывает, что ваш рабочий загрузчик переживет любой сбой любого API. Объем: 4 урока, 4 задания с кодом; время прохождения пока не измерено.

Что остается у вас: код тренажера и тесты под лицензией MIT и чек-лист из шести вопросов к любому загрузчику с пагинацией.

Для кого этот курс

  • Вы пишете на Python скрипты, которые забирают данные из чужих API, и хотя бы раз получали "у вас не сходится".
  • Вы аналитик или начинающий дата-инженер и вам поручили коннектор к внешнему сервису.

Начальные требования

Python: функции, циклы, списки, словари, исключения. Интернет, Docker и установка пакетов не нужны.

Программа курса

В курс входят

  • 5 уроков
  • 22 теста
  • 4 интерактивные задачи
загружаем...

Наши преподаватели

Сколько стоит обучение

Бесплатно

Расскажите о курсе друзьям

Бесплатно