Типы API¶
API (Application Programming Interface, программный интерфейс приложения) — это набор правил, протоколов и инструментов, определяющих способ взаимодействия между программными компонентами: сервисами, библиотеками, операционными системами или аппаратными устройствами. Типы API классифицируются по нескольким основаниям — области доступа, способу передачи данных, назначению и модели предоставления, — что определяет их применимость в конкретных сценариях разработки.
¶Классификация по области доступа
¶Операционные системы
Операционные системы API (OS API) предоставляют приложениям доступ к ресурсам компьютера: файловой системе, памяти, процессам, сетевым подключениям, дисплею и периферии. На платформе Windows это семейство Win32 API, на POSIX-системах (Linux, macOS) — системные вызовы ядра. Примеры: функции CreateFile и ReadFile в Windows, open и read в Linux.
¶Библиотечные API
Библиотечные API — это интерфейсы, предоставляемые готовыми библиотеками и фреймворками. Разработчик вызывает функции библиотеки, не реализуя их самостоятельно. Примеры: стандартная библиотека языка Python, Qt для графических интерфейсов, OpenCV для компьютерного зрения.
¶Программные API (API приложений)
API приложений — интерфейсы, которые программное обеспечение предоставляет другим программам для доступа к его функциям. Пример: API Microsoft Office, позволяющий управлять документами Word и Excel из внешнего кода.
¶Аппаратные API
Аппаратные API описывают интерфейсы взаимодействия с физическими устройствами: датчиками, принтерами, контроллерами. Пример — USB API, Bluetooth API, API драйверов устройств.
¶Классификация по способу передачи данных
¶REST API
REST (Representational State Transfer) — архитектурный стиль, основанный на использовании HTTP-запросов (GET, POST, PUT, DELETE) и передаче данных в формате JSON или XML. REST API стал де-факто стандартом для веб-сервисов благодаря простоте, масштабируемости и независимости от платформы. Примеры: GitHub API, OpenWeatherMap API, API государственных услуг.
¶SOAP API
SOAP (Simple Object Access Protocol) — протокол обмена структурированными сообщениями поверх HTTP, SMTP и других транспортных протоколов. Использует форматирование XML и строгие схемы WSDL. SOAP API применяется в корпоративных системах, банковских и государственных сервисах, где критичны транзакционность, безопасность и стандартизация. В России SOAP-интерфейсы распространены в интеграции с 1С и банковскими системами.
¶GraphQL API
GraphQL — язык запросов и среда выполнения для API, предложенный Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ) в 2015 году. Клиент запрашивает ровно те данные, которые ему нужны, в одном запросе. GraphQL снижает количество обращений к серверу и устраняет проблему избыточности или недостаточности данных, характерную для REST.
¶RPC API
RPC (Remote Procedure Call) — модель, в которой удалённый вызов функции маскируется за локальным вызовом. Современные реализации: gRPC (от Google, использует HTTP/2 и Protocol Buffers), JSON-RPC, XML-RPC. gRPC обеспечивает высокую производительность и используется в микросервисной архитектуре.
¶WebSocket API
WebSocket — протокол двустороннего взаимодействия поверх TCP, поддерживающий постоянное соединение между клиентом и сервером. Применяется в чатах, онлайн-играх, финансовых терминалах и системах мониторинга, где требуется обмен данными в реальном времени.
¶Классификация по назначению
¶Внутренние и внешние API
Внутренние (private) API используются внутри организации для связи между сервисами и командами разработки. Внешние (public) API предоставляются сторонним разработчикам для интеграции с продуктом. Публичные API часто сопровождаются программами партнёрства и монетизацией.
¶Открытые и закрытые API
Открытые API имеют публичную документацию и доступны для использования. Закрытые API используются только внутри компании и не публикуются.
¶Партнёрские API
Партнёрские API предоставляются выбранным партнёрам по особым договорённостям — например, банкам или операторам связи — и не являются полностью открытыми.
¶Модели предоставления API
¶API-шлюзы
API-шлюз (API Gateway) — компонент, управляющий потоком запросов к API: аутентификация, авторизация, балансировка нагрузки, кэширование, мониторинг и ограничение частоты запросов (rate limiting). Примеры: Kong, Apigee, AWS API Gateway, Yandex Cloud API Gateway.
¶Монетизация API
Модели монетизации включают платный доступ по подписке, оплату за запрос (pay-per-call) и бесплатные тарифы с ограничениями. В России работают платформы API-маркетплейсов, где разработчики продают доступ к своим сервисам.
¶Применение
API лежат в основе современной разработки: микросервисной архитектуры, мобильных приложений, интернета вещей, облачных сервисов и интеграции корпоративных систем. По данным аналитических агентств, подавляющее большинство веб-приложений используют хотя бы один внешний API. В России развитие API-экосистемы связано с цифровизацией госуслуг (ЕПГУ), платёжными системами (СБП) и открытыми данными.
¶Источники
- Fielding, R. T. Architectural Styles and the Design of Network-based Software Architectures. University of California, 2000.
- Richardson, L., Amundsen, M., Ruby, S. RESTful Web APIs. O'Reilly Media, 2013.
- Fowler, M. Patterns of Enterprise Application Architecture. Addison-Wesley, 2002.
- Руководства по API: Microsoft Learn, Google Cloud Documentation, OpenWeatherMap API Reference.
