Коротко: API — це спосіб однієї програми попросити щось у іншої. Дитині це потрібно, щойно вона захоче взяти курс валют, погоду чи картинку з інтернету у свій проєкт.
API — це спосіб однієї програми попросити дані в іншої. У курсі Python ця тема стоїть на ступені «Ігри та боти» для 10–14 років: бібліотека requests, формат JSON і отримання даних із відкритих джерел — погоди, курсів валют.
Виглядає буденно, а насправді це поворотний момент: до цієї теми програма дитини знала тільки те, що дитина в неї вписала.
Чим програма без API відрізняється від програми з ним
Уся попередня робота — змінні, цикли, функції, файли — це замкнений світ. Калькулятор рахує те, що ввели. Гра працює за правилами, які прописали.
Із API програма вперше дізнається щось про зовнішній світ. Скрипт, який показує сьогоднішню погоду, робить те, чого дитина не могла закласти заздалегідь: завтра він покаже інше, і це буде правда.
Із цього моменту стає зрозуміло, як влаштовані застосунки в телефоні. Вони майже нічого не зберігають у собі — вони запитують.
Що відбувається за ту секунду, поки програма чекає
Дитина пише один рядок — запит за погодою. Натискає запуск. Секунда тиші, і в консолі з'являються цифри.
За цю секунду встигає багато. Програма знаходить, за якою адресою живе сервіс. Відкриває з ним з'єднання. Каже, що саме їй потрібно: місто, одиниці виміру, іноді ключ доступу. Сервер шукає дані, пакує їх у текст і відправляє назад. Програма цей текст розбирає й дістає з нього потрібне число.
Ми проходимо цей ланцюжок повільно, по кроку, і не заради теорії. Коли за тиждень щось перестане працювати, підліток має розуміти, де саме шукати: адреса не та, параметр забув, інтернет ліг чи сервіс відповів відмовою.
Звідки беремо API на занятті
Починаємо з тих, що працюють без реєстрації: час у різних містах, курси валют, довідник країн. Це зручно тим, що перший запит виконується одразу, без пошти, паролів і очікування підтвердження.
Далі підключаємо сервіс із ключем — зазвичай погоду. Тут з'являється нова думка: доступ персональний, ключ належить тобі, і поводитися з ним треба як із паролем. Та сама думка потім повертається в темі про бота й у темі про Git.
Дані навмисно беремо ті, які підліток може перевірити очима. Якщо програма каже, що в Дніпрі зараз мінус сорок, помилку видно без викладача.
JSON: формат, у якому дані приходять
Відповідь від сервера приходить не готовим текстом, а структурою: вкладені пари «назва — значення». Це JSON, і в темі його розбирають окремо.
Для дитини корисно тут інше, ніж синтаксис. Вона бачить, що дані бувають упорядковані, і щоб дістати з них потрібне, треба зрозуміти будову, а не вгадувати. Навичка читати чужу структуру знадобиться далі скрізь — у базах даних, у налаштуваннях, у файлах конфігурації.
Де підліток бачить API поза курсом
Скрізь, просто без назви. Застосунок погоди на телефоні не має власної метеостанції — він питає чужий сервіс. Кнопка «увійти через Google» на сайті — теж запит до чужого сервісу. Курс валют у банківському застосунку приходить звідти ж.
Момент, коли це доходить, зазвичай один і той самий: підліток запускає свій скрипт, бачить ту саму цифру, що й у телефоні, і розуміє, що застосунок робить рівно те, що він щойно написав у десяти рядках. Після цього слово «API» перестає бути абревіатурою з відеоуроку.
Скільки це займає в програмі
Тема п'ята з тринадцяти на ступені «Ігри та боти» — тобто десь третина шляху. Ставимо її після файлів і обробки помилок навмисно: щоб до першого запиту дитина вже вміла зберігати отримане на диск і не лякалася червоного тексту в консолі.
Далі API не зникає. Бот працює через нього. Підключення мовної моделі — теж запит до чужого сервісу, просто складніший. На старшому ступені підліток переходить на інший бік і пише власний API на Flask — той, до якого звертатимуться вже його програми.
Три цифри, які треба вміти читати
Сервер відповідає не тільки даними, а й кодом — коротким числом, яке каже, як усе пройшло.
200 — усе гаразд, дані всередині. 404 — за цією адресою нічого немає, найчастіше помилка в самому запиті. 429 — запитів забагато, сервіс просить зачекати.
Останній код відкриває окрему розмову. У більшості безкоштовних сервісів є ліміт: стільки-то звернень на хвилину або на добу. Перша ж програма з циклом, який смикає сервер сто разів поспіль, у цей ліміт упирається. Звідси природно виростає думка про те, що отримані дані варто зберегти в себе, а не питати одне й те саме щохвилини.
Що ламається найчастіше
Три речі, і жодна з них не про синтаксис.
Змінилася структура відповіді. Сервіс оновився, поле переїхало на рівень глибше — і програма, яка вчора працювала, сьогодні падає. Це нормальна частина роботи з чужими даними, і підліток уперше стикається з тим, що код може зламатися сам, без жодної правки.
Немає інтернету. Програма чекає й зависає. Тут стає в пригоді тема, пройдена раніше: обгортаємо запит у try і показуємо людині зрозуміле повідомлення замість червоної стіни тексту.
Ключ протух. Безкоштовні ключі часто мають строк дії. Відповідь приходить, але замість даних — відмова. Читати таку відповідь теж треба вміти.
Куди ця тема веде далі
Одразу після API в програмі йдуть три теми Pygame, а потім Telegram-боти на aiogram. І бот — це, по суті, теж робота з API: програма звертається до сервісу Telegram і відповідає на те, що прийшло.
Ще далі — підключення моделі ШІ через OpenAI API. Для дитини, яка вже дістала погоду з відкритого джерела, це не магія, а знайомий механізм: відправили запит, отримали відповідь, обробили.
На старшому ступені тема виростає у власний веб-API на Flask — тобто підліток уже не тільки запитує чужі сервіси, а й робить свій, до якого можуть звертатися інші.
Чи потрібні платні ключі для навчальних завдань?
Для теми про API беруть відкриті джерела — погода, курси валют. Платні сервіси з'являються пізніше й окремо, вже усвідомлено.
Що робити, якщо сервіс не відповідає?
Це нормальна ситуація, і саме тому перед API в програмі стоїть тема про обробку помилок: try/except, власні виключення. Робота із зовнішнім світом означає, що щось може піти не так — і код має це передбачати.
Чи безпечно давати дитині доступ до зовнішніх сервісів?
Запити йдуть до публічних джерел і не вимагають особистих даних. Окремо в програмі є тема про змінні оточення — ключі доступу не пишуть у код і не викладають у репозиторій.
Коротко
Тема API — момент, коли навчальні вправи перетворюються на програми, які роблять щось справжнє. Вона коротка за обсягом, але саме після неї у дитини з'являються проєкти, якими користуються інші люди.
Що з цього виходить за перший рік, розібрано окремо: проєкти за перший рік навчання. Як тема ШІ розгортається на всіх трьох ступенях — тут.