Что такое 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 |
| SOAP | XML, строгий контракт (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 не изменился.
Это как с пультом от телевизора: ты знаешь кнопки (интерфейс), но внутри телевизор может быть на лампах, транзисторах или микросхемах — кнопки те же.
Проверь себя
- Что такое API и зачем он нужен?
- Чем Web API отличается от обычного API?
- Почему смена базы данных на сервере не должна ломать клиент?
- API — это контракт/интерфейс между программами. Позволяет одной программе использовать возможности другой, не зная внутреннего устройства.
- Web API работает поверх HTTP (запросы к URL, ответы в JSON/XML). Обычный API может быть библиотекой в том же процессе (например, API работы с файлами в ОС).
- Потому что API — это абстракция. Клиент зависит от контракта (URL, формат данных), а не от внутренней реализации. Пока контракт не меняется, смена базы данных прозрачна для клиента.
Что унести с урока
- API — контракт между программами: как запрашивать данные и вызывать действия.
- Web API работает поверх HTTP и возвращает данные (JSON), а не HTML-страницы.
- REST — самый распространённый подход для Web API, но есть и другие (SOAP, GraphQL, gRPC).
- API позволяет разделить фронтенд и бэкенд и обслуживать несколько клиентов.
В следующем уроке разберём принципы REST — что делает API «RESTful», что такое ресурсы и почему архитектурные ограничения улучшают API.