Web & API

API

Application Programming Interface — контракт, по которому одна программа обращается к другой: куда слать запрос, в каком формате и что придёт в ответ.

Что такое API

API (Application Programming Interface, программный интерфейс приложения) — контракт между программами. Он описывает, по какому адресу слать запрос, в каком формате передавать данные, что вернётся в ответ и как сообщается об ошибке. Вызывающей стороне не нужно знать, как сервис устроен внутри: достаточно соблюдать контракт.

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

API простыми словами

Аналогия — официант в ресторане. Вы не идёте на кухню готовить сами: выбираете блюдо из меню, официант передаёт заказ и приносит результат. Меню — документация API, заказ — запрос, блюдо — ответ. Кухня может полностью поменяться, но пока меню прежнее, заказывают так же.

Живые примеры: приложение погоды не измеряет температуру термометром, а спрашивает API метеосервиса; оплата картой в магазине — запрос к API платёжного провайдера; карта на сайте доставки — API картографического сервиса. «Апи» в русской речи — то же самое слово, просто произнесённое по буквам.

Как выглядит вызов API

Типичный веб-API работает поверх HTTP. Запрос — это метод и URI, ответ — код состояния и тело, чаще всего в JSON:

curl -s "https://api.example.com/v1/cities/moscow/weather" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"
{
  "city": "moscow",
  "temperature_c": -3.2,
  "condition": "snow",
  "updated_at": "2026-01-17T09:00:00Z"
}

Конкретный адрес, к которому обращается клиент, называется API endpoint. Успех или неудачу клиент определяет по коду ответа: 200 — данные отданы, 401 — ключ неверный, 404 — такого города нет, 500 — сломался сам сервис.

Виды API

Стиль Формат данных Транспорт Где применяют
REST JSON HTTP Публичные веб-API, выбор по умолчанию
SOAP XML HTTP Банки, госсистемы, legacy-интеграции
gRPC Protobuf HTTP/2 Внутренние вызовы между микросервисами
GraphQL JSON HTTP Клиент сам выбирает нужные поля
WebSocket любой TCP Двусторонний обмен в реальном времени

Для веб-интеграций по умолчанию берут REST — как устроен этот стиль, разбирается на отдельной странице REST API. gRPC выбирают ради скорости внутренних вызовов в микросервисной архитектуре, SOAP — когда этого требует чужая система.

Различают также веб-API и библиотечные API: у любой библиотеки тоже есть API — набор публичных функций и классов. Но фраза «дёрнуть API» почти всегда означает сетевой вызов.

Что такое API-ключ

API-ключ — длинная случайная строка, которую клиент прикладывает к запросу, чтобы сервер понял, кто обращается, и посчитал лимиты и оплату. Обычно передаётся в заголовке Authorization: Bearer <ключ> или X-API-Key. Ключ равносилен паролю: его не кладут в репозиторий и не встраивают в код фронтенда. Подробности — на странице API-ключи; для пользовательских сессий вместо ключей чаще берут JWT или OAuth.

Telegram Bot API

Частый первый API в жизни разработчика — Telegram Bot API. Токен выдаёт @BotFather, дальше все методы вызываются как обычные HTTP-запросы:

curl "https://api.telegram.org/bot$TOKEN/sendMessage" \
  -d chat_id=123456789 \
  -d text="Сервер поднялся"

Официальная документация — на английском, но методы простые и обёртки есть почти для всех языков. Подробный разбор — в статье Telegram-боты.

Как читать чужой API

  • Документация. Хороший сервис публикует спецификацию Swagger / OpenAPI — там перечислены все эндпоинты, параметры и схемы ответов, а запрос можно отправить прямо из браузера.
  • Лимиты. Почти любой публичный API ограничивает частоту запросов и отвечает 429, если перебрать.
  • Что там на самом деле летит. Если документации нет, помогает вкладка Network в браузере и HAR-файл.
  • Обратное направление. Когда события инициирует сервис, а не клиент, используют webhook — сервис сам шлёт HTTP-запрос вам.

Связанные термины

  • REST API — самый распространённый стиль веб-API
  • API endpoint — конкретный адрес вызова
  • API-ключи — как API узнаёт вызывающего
  • Swagger / OpenAPI — стандарт описания API
  • HTTP — протокол, поверх которого работает большинство API
  • Webhook — вызов в обратную сторону

Готовы запустить GPU-задачу?

Запустить GPU-сервер