Learning Platform
Глоссарий Troubleshooting
Урок 02.01 · 14 мин
Начальный
APIклиентсерверосновы

Что такое API: официант между тобой и кухней

Весь этот курс называется “REST API”. Но прежде чем разбирать слово “REST”, давайте честно ответим на более простой вопрос: что вообще такое “API”? Это слово вы будете встречать в каждом уроке, в каждой вакансии Data Engineer и в каждой документации. Поэтому в этом самом первом уроке мы определим его с нуля — без TCP, без HTTP, без единой технической детали. Только идея.

К концу урока вы будете уметь объяснить словами “что такое API”, “кто такой клиент” и “кто такой сервер” — так, чтобы понял даже человек, ни разу не писавший код.


Аналогия: ресторан

Представьте, что вы пришли в ресторан. Вы голодны, вы хотите стейк. Но вы же не идёте сами на кухню жарить мясо? Кухня закрыта для гостей. Там свои правила, своё оборудование, свой повар, и посторонним туда нельзя.

Вместо этого к вам подходит официант. У официанта есть меню — список того, что можно заказать. Вы говорите: “Стейк, средней прожарки, пожалуйста”. Официант записывает заказ, уходит на кухню, передаёт его повару. Повар готовит. Через двадцать минут официант возвращается и приносит вам тарелку со стейком.

Заметьте, что произошло. Вы получили то, что хотели, но при этом:

  • вы не заходили на кухню;
  • вы не знаете, на какой сковороде жарили, какой марки плита, как зовут повара;
  • вы просто сделали понятный запрос по меню — и получили понятный результат.

Официант — это посредник между вами и кухней. Он принимает ваши запросы в понятном формате (по меню) и приносит ответы. Вот этот официант и есть API.


Расшифровка: API простыми словами

API расшифровывается как Application Programming Interface — “интерфейс программирования приложений”. Звучит сложно, поэтому давайте разберём по словам и сразу переведём на человеческий.

Слово интерфейс здесь — ключевое. Интерфейс — это точка соприкосновения, через которую две стороны взаимодействуют, не заглядывая внутрь друг друга. У микроволновки есть интерфейс — кнопки и экран. Вы нажимаете “30 секунд, старт”, и еда греется. Вы не знаете, как именно магнетрон излучает волны — вам и не нужно. Кнопки — это интерфейс между вами и сложной электроникой.

Так вот:

API — это набор правил, по которым одна программа просит что-то у другой программы и получает ответ. Это “меню” и “официант” в мире программ. Программа A не лезет внутрь программы B. Она просто делает запрос по заранее известным правилам — и получает ответ.

NOTE

Не пугайтесь длинной расшифровки “Application Programming Interface”. На практике слово API почти всегда означает простое: “способ одной программе обратиться к другой и получить данные или результат”. Держите в голове образ официанта — этого достаточно на старте.


Кто такой клиент и кто такой сервер

В нашем ресторане было две стороны: вы (тот, кто просит) и кухня (та, что выполняет). В мире программ у этих двух ролей есть имена.

Клиент — это тот, кто отправляет запрос. В ресторане клиент — это вы, гость за столиком. В мире программ клиент — это, например, ваш браузер, мобильное приложение или Python-скрипт, который вы напишете. Клиент чего-то хочет и просит это.

Сервер — это тот, кто принимает запрос, выполняет работу и отправляет ответ. В ресторане сервер — это кухня. В мире программ сервер — это чужой компьютер где-то в интернете, на котором запущена программа, готовая отвечать на запросы. Например, у GitHub есть сервер, который умеет отдавать информацию о пользователях. У сервиса погоды есть сервер, который умеет отдавать прогноз.

Слово “сервер” происходит от английского to serve — “обслуживать, подавать”. Сервер буквально подаёт вам данные, как официант подаёт блюдо. А API — это правила, по которым клиент и сервер договариваются общаться.

КЛИЕНТ                       API (правила)                 СЕРВЕР
(ваш скрипт)   --- запрос ----->                ----->  (компьютер GitHub)
               <-- ответ -------                <-----

Одна важная мысль: клиент и сервер — это роли, а не “тип компьютера”. Ваш ноутбук обычно клиент (он просит). Но если вы запустите на нём программу, которая принимает запросы, ваш ноутбук в этот момент становится сервером. Роль определяется тем, кто просит, а кто отвечает в конкретном разговоре.


Зачем вообще нужны API

Может возникнуть вопрос: зачем эти посредники? Почему программы не берут данные друг у друга напрямую?

По той же причине, по которой вас не пускают на кухню ресторана:

  1. Безопасность. Кухня (сервер) не хочет, чтобы посторонние трогали её оборудование и продукты. API пускает вас только к тому, что разрешено в “меню”, и не дальше.
  2. Простота. Вам не нужно знать, как устроена кухня. Вы знаете меню — и этого хватает. Программе-клиенту не нужно знать, как сервер хранит данные, на каком языке написан, какая у него база. Достаточно знать правила запроса.
  3. Независимость. Кухня может поменять плиту, нанять нового повара, переставить холодильник — для вас как гостя ничего не изменится, пока меню прежнее. Сервер может полностью переписать свой код — клиент продолжит работать, пока правила API не меняются.

Для будущего Data Engineer это особенно важно: ваша ежедневная работа — забирать данные из чужих систем (банков, маркетплейсов, сервисов аналитики). Вы почти никогда не получаете прямой доступ к их базам данных. Вы получаете API — “меню”, по которому можно спросить нужные данные. Умение читать это меню и делать правильные запросы — одна из базовых профессиональных навыков в этой роли.

TIP

Когда в вакансии или документации вы видите фразу “интеграция через API” — мысленно переводите её так: “мы общаемся с чужой системой через официанта, по заранее оговорённому меню, не залезая к ней внутрь”. Это снимает большую часть страха перед словом.


Примеры API из жизни

API окружают вас, даже если вы об этом не думали:

  • Приложение погоды на телефоне не “знает” погоду само. Оно спрашивает её у API метеослужбы и показывает ответ.
  • Кнопка “Войти через Google” на сайте работает через API Google: сайт-клиент спрашивает у сервера Google “это правда ваш пользователь?” и получает ответ.
  • Когда таксопарк показывает машины на карте, приложение-клиент спрашивает у сервера через API “где сейчас свободные машины рядом?” — и рисует ответ на карте.

Во всех случаях схема одна: клиент делает понятный запрос -> сервер выполняет работу -> сервер возвращает ответ. Меню (API) заранее определяет, что именно можно спросить и в каком виде придёт ответ.


Попробуй сам

Кода тут пока не будет — только мышление. Это упражнение разминает главную интуицию курса.

  1. Возьмите любое приложение на телефоне, которое показывает данные из интернета (погода, новости, курс валют, доставка еды). Спросите себя: где здесь клиент, а где сервер? Что именно “просит” приложение и что ему “приносят” в ответ?

  2. Опишите своими словами, без терминов, как работает банкомат через аналогию с рестораном. Кто клиент, кто сервер, что играет роль “меню”, что — “официанта”? (Подсказка: вы — клиент, банк — сервер, экран с кнопками — меню.)

  3. Объясните вслух, как будто другу: “API — это…”. Если получилось объяснить без слов TCP, HTTP и “протокол” — вы поняли урок. Эти технические слова появятся позже, и они лягут поверх этой простой идеи.


Проверка знанийKnowledge check
Друг, далёкий от программирования, спрашивает: "Все говорят API, API. Можешь объяснить, что это, на простом примере?" Как ответить, не используя ни одного технического термина?
ОтветAnswer
API -- это посредник между двумя программами, как официант между гостем и кухней ресторана. Ты (гость) не идёшь на кухню сам -- ты делаешь заказ по меню официанту, и он приносит тебе блюдо. Тебе не надо знать, как устроена кухня и как готовят. Точно так же одна программа не лезет внутрь другой: она просто делает понятный запрос по заранее известным правилам ("меню") и получает понятный ответ. Тот, кто просит, называется клиентом (это ты, гость). Тот, кто выполняет работу и отвечает, называется сервером (это кухня). А API -- это сами правила и "меню", по которым они общаются. Главная польза: безопасность (тебя не пускают на кухню), простота (тебе хватает меню, не надо знать внутренности) и независимость (кухня может меняться внутри, пока меню прежнее).

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

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

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

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

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

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