API (Application Programming Interface) — программный интерфейс, который позволяет приложениям и информационным системам обмениваться данными и вызывать функции друг друга по заранее определенным правилам. API скрывает внутреннюю реализацию системы и предоставляет внешним потребителям стандартизированный набор операций.
API является одним из ключевых механизмов интеграции современных информационных систем. Через API взаимодействуют мобильные приложения и серверы, микросервисы внутри одной платформы, корпоративные системы, внешние сервисы и аналитические решения.
Доступ к данным в базе данных
API может предоставлять приложению доступ к данным, которые хранятся в базе данных. При этом приложение обычно не обращается к БД напрямую: запрос поступает в API, а серверная часть приложения выполняет необходимые операции с базой данных и возвращает результат.
Например, API интернет-магазина может предоставить функции получения информации о товарах, поиска клиентов, создания заказа или изменения его статуса. Это позволяет контролировать права доступа, проверять входные данные и скрывать от внешних систем структуру и внутреннюю реализацию базы данных.
Доступ к данным другой информационной системы
API позволяет одной информационной системе обращаться к функциям и данным другой системы. Например, CRM может через API получать информацию о заказах из ERP, интернет-магазин — сведения об остатках из складской системы, а корпоративное приложение — данные из системы электронного документооборота.
Такой подход особенно важен для микросервисной архитектуры, в которой отдельные сервисы должны взаимодействовать друг с другом без прямого доступа к базам данных соседних сервисов. API выступает контрактом между системами и определяет, какие данные и операции доступны внешнему потребителю.
API как набор функций
API редко представляет собой одну или несколько простых функций. Полноценный интерфейс крупной информационной системы может включать сотни операций: получение и изменение данных, поиск, фильтрацию, создание объектов, управление статусами, запуск бизнес-процессов и другие действия.
У крупных корпоративных платформ и интеграционных решений API может включать десятки тысяч функций и методов, охватывающих большое количество бизнес-сущностей и процессов. Поэтому API фактически становится отдельным слоем информационной системы, через который другие приложения получают программный доступ к ее возможностям.
Аутентификация через токены в API
При интеграции информационных систем API часто использует токены доступа (Access Token) для аутентификации и авторизации запросов. Клиент сначала проходит аутентификацию и получает токен, после чего передает его при обращении к защищенным функциям API. Сервер проверяет токен, его срок действия и права доступа, а затем выполняет запрос.
Например, API может предоставлять функцию получения информации о клиенте:
GET /api/customers/{id}
Для обращения к этой функции клиент передает токен в HTTP-заголовке Authorization:
GET /api/customers/1542 HTTP/1.1
Host: example.ru
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
В данном примере Bearer указывает на способ передачи токена, а следующая за ним строка является самим Access Token. Если токен действителен и обладает необходимыми правами, API возвращает запрошенные данные:
{
"id": 1542,
"name": "ООО «Компания»",
"status": "active"
}
Таким образом, токен позволяет отделить аутентификацию пользователя или системы от непосредственного выполнения API-запросов. Один и тот же токен может использоваться для нескольких запросов в течение установленного срока действия, при этом сервер может ограничить доступ к отдельным функциям API с помощью прав или scopes.
Основные типы API
На практике используются разные архитектурные подходы к построению API. Наиболее распространены REST API, основанные на HTTP и ресурсной модели, SOAP API, широко применявшиеся в корпоративных интеграциях, а также GraphQL, позволяющий клиенту формировать запрос и получать только необходимые данные. Для высокопроизводительного взаимодействия между сервисами также применяется gRPC.
Таким образом, API обеспечивает контролируемый программный доступ к данным и функциям информационных систем. Он позволяет интегрировать приложения, не раскрывая их внутреннюю архитектуру, и является одним из основных элементов современной распределенной и микросервисной ИТ-инфраструктуры.


