Открыть сервисСервис

Программный интерфейс прикладного программирования

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

Назначение и принцип работы

API выступает посредником между двумя программными слоями. Клиент (потребитель API) отправляет запрос по описанному контракту, а сервер (владелец API) возвращает результат в согласованном формате. Благодаря этому внутренняя архитектура системы может меняться без разрушения внешних интеграций — это принцип слабой связанности, лежащий в основе современного программного проектирования.

Типичный API-контракт включает:

  • набор доступных операций (методов) и их параметры;
  • формат данных (чаще всего JSON или XML);
  • правила аутентификации и авторизации;
  • коды ошибок и формат ответов при сбоях.

Классификация

API классифицируют по нескольким признакам.

По способу доступа:

  • Локальные (внутренние) — взаимодействие в пределах одного процесса или компьютера (например, вызов функций системной библиотеки).
  • Удалённые — взаимодействие по сети, чаще всего через HTTP.

По модели предоставления:

ТипОписание
REST APIАрхитектурный стиль на базе HTTP; использует методы GET, POST, PUT, DELETE; данные обычно в формате JSON
SOAPПротокол обмена сообщениями на базе XML со строгой спецификацией (WSDL)
GraphQLЯзык запросов, позволяющий клиенту запрашивать ровно нужные данные
gRPCВысокопроизводительный RPC-протокол на базе HTTP/2 и Protocol Buffers
WebSocketДвустороннее постоянное соединение для обмена сообщениями в реальном времени

По назначению:

  • Операционные системы — доступ к файловой системе, сети, устройствам (POSIX API, WinAPI).
  • Библиотечные — вызов функций языковых и сторонних библиотек.
  • Веб-сервисы — интеграция распределённых систем через сеть.
  • Аппаратные (hardware API) — взаимодействие с драйверами и оборудованием.
  • Программные интерфейсы приложений — доступ к функциям мобильных и десктопных приложений.

REST как основной подход

Наиболее распространён в веб-разработке REST (Representational State Transfer). REST API использует стандартные HTTP-методы: GET — получение данных, POST — создание, PUT/PATCH — обновление, DELETE — удаление. Ресурсы идентифицируются URL-адресами, состояние передаётся в теле запроса (обычно в JSON). Пример обращения к публичному API погоды:

`` GET https://api.example.com/v1/weather?city=Moscow ``

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

Аутентификация и безопасность

Доступ к API регулируется средствами аутентификации. Наиболее распространены:

  • API-ключи — уникальные токены, передаваемые в заголовке запроса;
  • OAuth 2.0 — протокол делегированной авторизации, выдающий временные токены доступа;
  • JWT (JSON Web Token) — самодостаточные подписанные токены с данными о пользователе.

Дополнительно применяются ограничение частоты запросов (rate limiting), проверка IP-адресов, шифрование трафика по HTTPS.

Роль в современной разработке

API являются фундаментом принципа «всё как сервис» (XaaS) и архитектуры микросервисов, где крупное приложение разбивается на независимые компоненты, общающиеся через внутренние API. Публичные API позволяют компаниям монетизировать свои данные и сервисы: платформенные модели (маркетплейсы, платёжные шлюзы, картографические сервисы) строятся на открытых программных интерфейсах.

В России разработка и эксплуатация API активно применяется в госсистемах (ЕСИА, Госуслуги, платёжные шлюзы ЦБ), банковских и телекоммуникационных инфраструктурах. Стандартизация внутренних API в крупных организациях позволяет сокращать стоимость интеграций и ускорять вывод новых сервисов.

Историческая справка

Термин «API» появился в 1970-е годы в контексте библиотек программирования — тогда API описывал набор функций, доступных разработчику при подключении библиотеки. С развитием интернета в 1990-е–2000-е понятие расширилось до сетевых интерфейсов, а с распространением смартфонов в 2008-е годы — до публичных API мобильных платформ (iOS, Android).

Источники

  • Рой Филдинг. «Architectural Styles and the Design of Network-based Software Architectures», 2000
  • Мартин Фаулер. «Patterns of Enterprise Application Architecture», 2002
  • «RESTful Web APIs», Л. Ричардсон, М. Амундсен, С. Лобо, 2013
  • RFC 9110: HTTP Semantics, IETF, 2022
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru