Что такое API

Что такое API

Мы разобрали, как браузер загружает страницу, которую пользователь видит. Но современные веб-приложения не просто показывают страницы — они обмениваются данными в фоне. Браузер запрашивает список товаров, отправляет форму логина, подгружает новые сообщения в чате. Для этого нужен API — набор правил, по которым программы общаются друг с другом.

API: интерфейс для машин

API (Application Programming Interface) — это контракт между программами. Если есть API, то одна программа может попросить другую что-то сделать или дать данные, не зная её внутреннего устройства.

Пример из жизни: меню в ресторане. Ты (клиент) не заходишь на кухню и не говоришь повару, как именно готовить. Ты выбираешь блюдо из меню (API-метод), называешь его официанту, и через некоторое время получаешь результат. Меню — это контракт: ты знаешь, что доступно, а что нет, и примерно какой будет результат.

Web API: общение по HTTP

Когда говорят «API» в контексте веб-разработки, обычно имеют в виду Web API — API, работающий поверх HTTP. Ты отправляешь HTTP-запрос к определённому URL, и сервер возвращает данные:

Клиент (браузер)                   Сервер (API)
     |                                  |
     |--- GET /api/products ----------->|  HTTP-запрос
     |                                  |
     |<--- 200 OK, JSON-данные ---------|  HTTP-ответ

Web API получает HTTP-запросы и возвращает данные, обычно в формате JSON. Никакой HTML-вёрстки, никаких стилей — только данные. Браузер сам решает, как эти данные отобразить.

Зачем нужен API

Без API каждое веб-приложение работало бы изолированно. API позволяет:

  • Разделить фронтенд и бэкенд. Фронтенд (браузер, мобильное приложение) запрашивает данные через API. Бэкенд можно переписать на другом языке, не трогая фронтенд. Фронтенд можно переделать, не меняя сервер.
  • Интегрировать сторонние сервисы. Карты на сайте (maps.googleapis.com/api), оплата через Stripe (api.stripe.com/v1/charges), погода — всё это API.
  • Один бэкенд обслуживает несколько клиентов. Сайт, мобильное приложение, другой сервер — все используют один и тот же API.

Типы Web API

Не все API одинаковы. Исторически сложилось несколько подходов:

ПодходОсобенностиПример
RESTРесурсы, HTTP-методы, без состоянияБольшинство современных API
SOAPXML, строгий контракт (WSDL), для enterpriseБанковские системы
GraphQLКлиент сам указывает, какие поля нужныGitHub API v4, Shopify
gRPCБинарный (Protobuf), быстрый, для микросервисовВнутренние API Google

Курс «Как работает интернет» сфокусирован на REST как на самом распространённом подходе для веб-приложений. GraphQL и gRPC — продвинутые темы, которые изучаются позже.

Пример: вызываем API из браузера

Простейший запрос к API через консоль браузера:

// Получить список пользователей
fetch('https://jsonplaceholder.typicode.com/users')
  .then(response => response.json())
  .then(users => console.log(users));

// Ответ — массив объектов:
// [
//   { id: 1, name: "Leanne Graham", email: "..." },
//   { id: 2, name: "Ervin Howell", email: "..." },
//   ...
// ]

Ты не знаешь, на чём написан сервер jsonplaceholder, какую базу данных он использует, как хранит данные. Но ты знаешь API: отправь GET /users → получишь массив пользователей. Это и есть контракт.

API как слой абстракции

Главная идея API — абстракция. Клиент знает ЧТО можно сделать (эндпоинты и форматы данных), но не знает КАК это работает внутри. Сервер может сменить базу данных с PostgreSQL на MongoDB — клиент не заметит, если контракт API не изменился.

Это как с пультом от телевизора: ты знаешь кнопки (интерфейс), но внутри телевизор может быть на лампах, транзисторах или микросхемах — кнопки те же.

Проверь себя

  1. Что такое API и зачем он нужен?
  2. Чем Web API отличается от обычного API?
  3. Почему смена базы данных на сервере не должна ломать клиент?
<details> <summary>Ответы</summary>
  1. API — это контракт/интерфейс между программами. Позволяет одной программе использовать возможности другой, не зная внутреннего устройства.
  2. Web API работает поверх HTTP (запросы к URL, ответы в JSON/XML). Обычный API может быть библиотекой в том же процессе (например, API работы с файлами в ОС).
  3. Потому что API — это абстракция. Клиент зависит от контракта (URL, формат данных), а не от внутренней реализации. Пока контракт не меняется, смена базы данных прозрачна для клиента.
</details>

Что унести с урока

  • API — контракт между программами: как запрашивать данные и вызывать действия.
  • Web API работает поверх HTTP и возвращает данные (JSON), а не HTML-страницы.
  • REST — самый распространённый подход для Web API, но есть и другие (SOAP, GraphQL, gRPC).
  • API позволяет разделить фронтенд и бэкенд и обслуживать несколько клиентов.

В следующем уроке разберём принципы REST — что делает API «RESTful», что такое ресурсы и почему архитектурные ограничения улучшают API.

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике