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

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

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

По архитектурному стилю

Архитектурный стиль определяет принципы организации взаимодействия между клиентом и сервером, структуру запросов и ответов, а также способы управления состоянием.

REST (Representational State Transfer)

REST — самый распространённый архитектурный стиль, основанный на принципах, сформулированных Роем Филдингом в 2000 году. Ключевые характеристики: клиент-серверная архитектура, отсутствие состояния (stateless), кеширование ответов, единообразие интерфейса (использование стандартных HTTP-методов: GET, POST, PUT, DELETE) и многоуровневая система. REST API работают через HTTP и передают данные в форматах JSON, XML или YAML. Примеры: API сервисов Google, Twitter, GitHub.

SOAP (Simple Object Access Protocol)

SOAP — протокол обмена структурированными сообщениями в формате XML, разработанный Microsoft в 1998 году. Использует строгие контракты (WSDL-описания) и поддерживает сложные транзакции, безопасность (WS-Security) и надёжную доставку. SOAP API часто применяются в корпоративных системах, финансовом секторе и телекоммуникациях, где требуется высокая надёжность и формализация. Недостатком считается избыточность и сложность по сравнению с REST.

GraphQL

GraphQL — язык запросов и среда выполнения, разработанная Facebook (организация признана экстремистской и запрещена в РФ) в 2012 году и открытая в 2015 году. Позволяет клиенту запрашивать только необходимые данные, избегая избыточности (over-fetching) и недостатка (under-fetching). GraphQL API используют единую конечную точку (endpoint), а структура ответа определяется запросом клиента. Применяется в современных веб- и мобильных приложениях (например, Shopify, GitHub, Pinterest).

gRPC (gRPC Remote Procedure Calls)

gRPC — высокопроизводительный фреймворк удалённого вызова процедур, разработанный Google в 2015 году. Использует Protocol Buffers (protobuf) для сериализации данных и HTTP/2 для передачи. Поддерживает потоковую передачу, двунаправленную связь и бинарные протоколы, что обеспечивает низкую задержку и высокую пропускную способность. Применяется в микросервисных архитектурах, системах реального времени и интернете вещей (IoT).

Другие архитектурные стили

По протоколу передачи данных

Протокол определяет формат и правила передачи сообщений между клиентом и сервером.

По области применения

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

Системные API

Предназначены для взаимодействия между компонентами операционной системы, ядра и драйверами. Примеры: Win32 API (Windows), POSIX API (Unix-подобные системы), Linux Kernel API. Обеспечивают доступ к аппаратным ресурсам, файловой системе, процессам и памяти.

Веб-API

Интерфейсы для взаимодействия веб-приложений и сервисов через HTTP. Включают:

Мобильные API

Оптимизированы для мобильных устройств: минимизируют объём передаваемых данных, поддерживают кеширование и автономную работу. Примеры: Firebase API, Apple Push Notification Service (APNs).

API для интернета вещей (IoT)

Предназначены для взаимодействия с датчиками, умными устройствами и сенсорами. Используют лёгкие протоколы (MQTT, CoAP) и низкое энергопотребление. Примеры: AWS IoT Core API, Google Cloud IoT Core.

API для искусственного интеллекта (AI/ML)

Предоставляют доступ к моделям машинного обучения и нейронным сетям. Примеры: OpenAI API (компания OpenAI не признана в РФ нежелательной или экстремистской), Google Cloud AI API, Yandex GPT API.

API для финансовых услуг (FinTech)

Обеспечивают интеграцию с банковскими системами, платёжными шлюзами и биржами. Примеры: Stripe API, Plaid API, API Центрального банка РФ для обмена данными.

По уровню доступа

Классификация по степени открытости и ограничениям использования.

Открытые (публичные) API

Доступны любому разработчику без регистрации или с минимальной аутентификацией. Часто используются для предоставления общедоступных данных (например, API погоды, API государственных данных). Примеры: API OpenWeatherMap, API Wikipedia.

Внутренние (частные) API

Используются внутри одной организации для взаимодействия между микросервисами или модулями. Недоступны извне и защищены корпоративной сетью. Примеры: API внутреннего сервиса доставки, API CRM-системы.

Партнёрские API

Предоставляются ограниченному кругу партнёров по договорённости. Требуют регистрации, аутентификации и соблюдения лицензионных соглашений. Примеры: API платёжных систем (Stripe, PayPal), API социальных сетей (VK API, Telegram Bot API).

Коммерческие API

Продаются как самостоятельный продукт или по подписке. Включают тарификацию по количеству запросов, объёму данных или функциональности. Примеры: API Google Maps, API Twilio, API Yandex Maps.

По способу взаимодействия

Определяет, как клиент и сервер обмениваются данными — синхронно или асинхронно.

Синхронные API

Клиент отправляет запрос и ожидает ответа, блокируя выполнение до получения результата. Типичны для REST и SOAP. Просты в реализации, но могут создавать задержки при высокой нагрузке.

Асинхронные API

Клиент отправляет запрос и продолжает работу, а ответ приходит позже через callback, очередь сообщений или WebSocket. Используются для длительных операций, уведомлений и потоковой передачи данных. Примеры: WebSocket API, AMQP, Kafka API.

Потоковые API

Передают данные непрерывно в реальном времени (стриминг). Применяются для видео, аудио, биржевых котировок и IoT. Примеры: YouTube Data API (потоковая передача), Twitter Streaming API.

По формату данных

Классификация по способу сериализации и представления информации в запросах и ответах.

По стандартам описания

Стандарты описания API позволяют автоматизировать документирование, генерацию кода и тестирование.

Критика и ограничения классификации

Единой общепринятой классификации API не существует: разные источники выделяют различные признаки, а многие API сочетают черты нескольких типов (например, RESTful API с элементами GraphQL). Классификация по архитектурному стилю является наиболее распространённой, но не всегда отражает практические аспекты — безопасность, производительность и удобство разработки. Кроме того, с развитием технологий появляются гибридные подходы (например, gRPC-Web, REST+GraphQL), которые размывают границы между категориями.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →