Интерфейс прикладного программирования (API)
API (Application Programming Interface) — интерфейс, через который одна программа общается с другой: запрашивает данные, отправляет команды и получает результат без доступа к исходному коду.
Что это
API (Application Programming Interface, интерфейс прикладного программирования) — это набор правил и протоколов, по которым одна программа может обращаться к функциям или данным другой программы. Грубо говоря, это договор: «ты присылаешь запрос в таком формате — я отвечаю в таком». Разработчику не нужно знать, как устроена чужая система изнутри — достаточно знать, какие запросы она принимает и что возвращает в ответ. Именно API позволяет строить сложные продукты из готовых блоков, не изобретая колесо каждый раз заново.
Зачем это нужно
До широкого распространения API каждая компания была вынуждена строить всю инфраструктуру самостоятельно — от авторизации до карт и платёжных систем. Сегодня Stripe обрабатывает платежи через API, Google Maps отдаёт карты через API, а Twilio рассылает SMS через API. Это экономит месяцы разработки и позволяет сосредоточиться на основном продукте. Для бизнеса API — ещё и канал монетизации: Twilio, Stripe, OpenAI зарабатывают именно на том, что предоставляют доступ к своим возможностям через API за плату.
Как это работает
Самая распространённая модель сегодня — REST API поверх HTTP. Клиент (браузер, мобильное приложение, другой сервер) отправляет HTTP-запрос на определённый адрес — эндпоинт. Запрос содержит метод (GET, POST, PUT, DELETE), заголовки (например, токен авторизации) и, при необходимости, тело с данными в формате JSON. Сервер обрабатывает запрос и возвращает ответ — тоже обычно в JSON — с кодом статуса: 200 означает успех, 404 — ресурс не найден, 401 — нет доступа. Помимо REST существуют GraphQL (клиент сам указывает, какие поля нужны), gRPC (быстрый бинарный протокол для микросервисов) и SOAP (устаревший XML-стандарт, до сих пор живёт в банках и госсистемах).
Примеры
- Авторизация через соцсети — кнопка «Войти через Google» использует OAuth 2.0 поверх Google API: сайт получает токен и базовые данные пользователя, не видя его пароля.
- Оплата на сайте — интернет-магазин подключает Stripe или ЮKassa через API: форма оплаты, списание, возврат — всё через несколько вызовов.
- Карты и геолокация — приложение такси запрашивает маршрут у Google Maps API или 2GIS API и получает координаты, время в пути и пробки.
- Погодные виджеты — сайт обращается к OpenWeatherMap API и получает текущую температуру и прогноз в формате JSON за один запрос.
- ИИ-функции в продуктах — стартапы встраивают GPT-4 в свои сервисы через OpenAI API, не обучая собственную модель.
Связанные понятия
- Эндпоинт (endpoint) — конкретный URL, по которому доступна определённая функция API.
- REST — архитектурный стиль построения API на основе HTTP-методов и ресурсов.
- JSON — текстовый формат данных, стандарт де-факто для передачи информации через API.
- Аутентификация / API-ключ — механизм идентификации клиента, обращающегося к API.
- SDK (Software Development Kit) — готовая библиотека, которая оборачивает вызовы API в удобные функции для конкретного языка.
- Webhook — обратный вариант API: сервер сам отправляет данные клиенту при наступлении события, а не ждёт запроса.
Частые заблуждения
Распространённое заблуждение — считать, что API это всегда что-то сетевое и веб-ориентированное. На самом деле API есть у операционных систем (Windows API, POSIX), у библиотек (API numpy в Python) и даже у аппаратного обеспечения. Второй миф — что открытый API значит бесплатный. Google Maps API был бесплатным до 2018 года, после чего Google ввёл платные тарифы, и многие компании срочно переходили на альтернативы. Наконец, API не гарантирует стабильности: поставщик может изменить или закрыть его — это называется «сломать обратную совместимость» — и тогда всё, что на нём завязано, перестаёт работать.