Лев Корольков
Руководитель IT-департамента EFSOL Oblako
Время чтения: 19 мин

API

Интерфейс взаимодействия программ

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

Например, мобильное приложение интернет-магазина не подключается напрямую к базе данных. Оно отправляет запрос к API: получить список товаров, создать заказ или показать историю покупок. Backend принимает запрос, выполняет необходимую бизнес-логику и возвращает ответ.

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

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

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

Пользователю не нужно знать, как устроена система внутри. Клиент отправляет понятный ей запрос, а API возвращает результат в согласованном формате.

API — это договор между программами: какие запросы можно отправлять, какие данные передавать и какой ответ следует ожидать.

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

Для чего нужен API

API позволяет разделять сложную информационную систему на независимые компоненты и соединять между собой разные приложения.

  • взаимодействие Frontend и Backend;
  • интеграция корпоративных систем;
  • работа мобильных приложений;
  • взаимодействие микросервисов;
  • автоматизация бизнес-процессов;
  • обмен данными с партнерами;
  • подключение платежных систем;
  • получение данных внешних сервисов;
  • управление облачной инфраструктурой;
  • создание платформ и экосистем.

Как работает API

В типичном сценарии существует клиент и сервер.

Клиент формирует запрос в соответствии с правилами API. Сервер принимает запрос, проверяет его, выполняет необходимую операцию и возвращает ответ.

  1. Клиент определяет нужную операцию.
  2. Формирует запрос.
  3. Отправляет его API.
  4. Сервер проверяет параметры и права.
  5. Выполняет бизнес-логику.
  6. При необходимости обращается к базе данных или другим сервисам.
  7. Формирует ответ.
  8. Клиент обрабатывает результат.

Пример работы API

Пользователь открывает страницу своих заказов в интернет-магазине.

Frontend отправляет запрос Backend API. Сервер определяет текущего пользователя, обращается к базе данных и возвращает список его заказов.

Frontend получает структурированные данные и отображает их в таблице.

Пользователь при этом не знает, где находится база данных, какие SQL-запросы выполнялись и как устроена серверная логика.

Что такое API Endpoint

Endpoint — конкретная точка API, через которую выполняется определенная операция.

В веб-API endpoint часто представляет собой комбинацию URL и HTTP-метода.

Например, один endpoint получает список товаров, другой создает заказ, третий возвращает информацию о конкретном пользователе.

GET /api/products
POST /api/orders
GET /api/orders/125

Каждый endpoint должен иметь понятное назначение и правила использования.

Что такое Request

Request — запрос клиента к API.

Он может содержать адрес ресурса, HTTP-метод, заголовки, параметры и тело запроса.

Например, при создании заказа клиент отправляет POST-запрос с идентификаторами товаров и данными доставки.

API проверяет входную информацию и либо выполняет операцию, либо возвращает ошибку.

Что такое Response

Response — ответ API на запрос клиента.

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

Например, после создания заказа API возвращает его идентификатор, статус и другую информацию.

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

API и HTTP

Многие современные API работают поверх HTTP или HTTPS.

HTTP определяет методы запросов, заголовки, коды ответов и другие правила обмена.

HTTPS добавляет шифрование соединения между клиентом и сервером.

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

HTTP-методы в API

МетодТипичная задача
GETПолучить данные
POSTСоздать объект или запустить операцию
PUTЗаменить представление объекта
PATCHИзменить часть объекта
DELETEУдалить объект

Конкретная семантика зависит от дизайна API, но единообразное использование методов делает интерфейс понятнее разработчикам.

Коды ответа API

HTTP API использует статус-коды, чтобы сообщить клиенту результат запроса.

КодТипичное значение
200Операция успешно выполнена
201Ресурс успешно создан
204Операция выполнена без тела ответа
400Некорректный запрос
401Необходима аутентификация
403Недостаточно прав
404Ресурс не найден
409Конфликт текущего состояния
429Слишком много запросов
500Внутренняя ошибка сервера
503Сервис временно недоступен

Что такое REST API

REST API — один из наиболее распространенных подходов к созданию веб-API.

Ресурсы представляются через URL, а стандартные HTTP-методы используются для операций над ними.

Например, ресурс orders представляет заказы, а обращение к конкретному идентификатору позволяет получить один заказ.

REST — архитектурный подход, а не отдельный сетевой протокол.

RESTful API

Термин RESTful обычно применяется к API, которое следует основным принципам REST и последовательно использует модель ресурсов и возможности HTTP.

На практике степень соответствия может отличаться. Многие системы называют REST API любой JSON API поверх HTTP, хотя его архитектура может использовать только часть принципов REST.

API и JSON

JSON является одним из распространенных форматов передачи данных в веб-API.

Он подходит для структурированных объектов и легко обрабатывается большинством языков программирования.

{"id":125,"status":"paid","total":4500}

В этом примере API возвращает данные заказа с идентификатором, статусом и суммой.

API и XML

XML также используется для обмена данными между системами.

Он особенно часто встречается в корпоративных и исторически сложившихся интеграциях.

XML поддерживает развитую структуру документов и схемы, но обычно имеет более объемный синтаксис по сравнению с JSON.

Выбор формата зависит от требований интеграции и используемых стандартов.

Что такое SOAP API

SOAP — протокол обмена структурированными сообщениями, часто использующий XML.

Он применяется в корпоративных информационных системах, банковских интеграциях и других сценариях, где исторически используются строгие контракты и соответствующие стандарты.

REST и SOAP решают похожую задачу интеграции систем, но используют разные подходы.

REST и SOAP

REST APISOAP
Архитектурный подходПротокол обмена сообщениями
Часто использует JSONОбычно использует XML
Широко применяется в веб-сервисахРаспространен в корпоративных интеграциях
Обычно проще для веб-разработчиковПоддерживает строгие формальные контракты

Что такое GraphQL

GraphQL — подход к API, при котором клиент описывает, какие именно данные ему нужны.

Например, Frontend может запросить только имя пользователя и список заказов вместо получения большого фиксированного объекта.

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

REST API и GraphQL

REST обычно организует API вокруг ресурсов и нескольких endpoint, а GraphQL предоставляет схему и язык запросов к данным.

Нельзя сказать, что один подход всегда лучше другого. REST проще во многих стандартных интеграциях, а GraphQL может быть удобнее для сложных клиентских интерфейсов с разными требованиями к данным.

Что такое gRPC

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

Она подходит для высокопроизводительных распределенных систем и строгих контрактов между компонентами.

gRPC особенно часто встречается в микросервисной инфраструктуре, где клиентами API являются другие сервисы, а не непосредственно браузеры.

REST и gRPC

RESTgRPC
Удобен для публичных HTTP APIЧасто применяется внутри распределенных систем
Обычно использует JSONОриентирован на формальные контракты и бинарное представление
Легко тестировать стандартными HTTP-инструментамиМожет быть эффективнее для частых межсервисных вызовов

Public API

Public API доступен внешним разработчикам или клиентам компании.

Например, сервис доставки публикует API, чтобы интернет-магазины могли автоматически создавать отправления.

Такой интерфейс требует особенно стабильной документации, продуманного версионирования и контроля доступности.

Private API

Private API используется только внутри организации.

Например, CRM обращается к внутренней системе учета, а сервис заказов — к сервису складских остатков.

То, что API является внутренним, не означает, что его можно не защищать. Необходимы аутентификация, авторизация и контроль доступа.

Partner API

Partner API предназначен для ограниченного круга партнеров.

Например, страховая компания предоставляет агентам интерфейс для создания заявок.

Такой API не является полностью публичным, но должен иметь внешний стабильный контракт и механизмы управления доступом.

API и Frontend

Frontend часто является клиентом Backend API.

Пользователь нажимает кнопку, JavaScript отправляет запрос на сервер, а затем интерфейс отображает результат.

Благодаря API один Backend может обслуживать несколько клиентов: браузер, мобильное приложение и внутреннюю административную систему.

API и Backend

Backend предоставляет API как внешний интерфейс своей бизнес-логики.

Он принимает запрос, проверяет пользователя, выполняет операцию и возвращает результат.

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

API и Fullstack

Fullstack-разработчик работает по обе стороны API.

Он может изменить Backend endpoint, а затем адаптировать Frontend, который этот endpoint вызывает.

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

API и микросервисы

В микросервисной архитектуре сервисы взаимодействуют через API или системы обмена сообщениями.

Например, order-service обращается к payment-service и delivery-service.

Количество таких связей может быстро расти, поэтому особенно важны понятные контракты, таймауты, Observability и управление версиями.

API и Service Mesh

Service Mesh управляет сетевым взаимодействием между микросервисами на инфраструктурном уровне.

Он может обеспечивать mTLS, retries, маршрутизацию и сетевые метрики, но не определяет бизнес-контракт API.

API отвечает за смысл запроса и ответа, а Service Mesh — за надежную и управляемую доставку сетевого взаимодействия.

Что такое API Gateway

API Gateway — компонент, который располагается перед одним или несколькими Backend API.

Он может выполнять маршрутизацию, аутентификацию, Rate Limiting, журналирование и другие инфраструктурные функции.

Например, запрос /orders направляется к сервису заказов, а /payments — к платежному сервису.

Gateway позволяет не открывать каждый внутренний микросервис напрямую внешним клиентам.

API Gateway и Reverse Proxy

Reverse Proxy и API Gateway имеют пересекающиеся функции, но API Gateway обычно глубже ориентирован на управление программными API.

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

Граница зависит от конкретной архитектуры и используемого продукта.

API и аутентификация

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

Для этого применяются различные механизмы аутентификации: пользовательские сессии, токены, API Keys и другие модели.

После аутентификации сервер определяет, какие операции разрешены этому клиенту.

Аутентификация и авторизация

Аутентификация отвечает на вопрос кто обращается к API, а авторизация — что этому субъекту разрешено делать.

Например, пользователь успешно вошел в систему, но не имеет права просматривать заказы другого клиента.

API должно проверять обе составляющие на серверной стороне.

Что такое API Key

API Key — ключ, который клиент передает сервису для идентификации или доступа к определенным функциям.

Он часто используется в server-to-server интеграциях и публичных API.

Ключ является секретом и не должен без необходимости попадать во Frontend, открытый Git-репозиторий или логи.

Bearer Token

Bearer Token — токен доступа, который клиент предъявляет API при запросе.

Сервис проверяет токен и определяет права клиента.

Поскольку обладание токеном часто достаточно для выполнения запросов, его необходимо защищать от утечки.

OAuth

OAuth используется для делегирования доступа между приложениями.

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

OAuth имеет несколько сценариев и требует корректной реализации на уровне клиента и сервера.

API и безопасность

API является внешней точкой входа в бизнес-логику приложения и поэтому требует особого внимания к безопасности.

  • проверять входные данные;
  • использовать HTTPS;
  • реализовать аутентификацию;
  • проверять авторизацию;
  • ограничивать Rate Limit;
  • не раскрывать внутренние ошибки;
  • защищать ключи и токены;
  • вести аудит важных операций;
  • регулярно обновлять зависимости;
  • контролировать доступ к административным endpoint.

Почему нельзя доверять данным клиента

Любой клиентский запрос может быть сформирован вручную или изменен злоумышленником.

Даже если Frontend проверяет форму, пользователь способен отправить запрос непосредственно к API.

Поэтому сервер обязан повторно проверять типы, допустимые значения, права и бизнес-ограничения.

API должно считать все внешние данные недоверенными до тех пор, пока они не проверены серверной логикой.

Rate Limiting

Rate Limiting ограничивает количество запросов за определенный период.

Например, одному API Key разрешено выполнять определенное количество запросов в минуту.

Это помогает защитить инфраструктуру от случайной перегрузки и части злоупотреблений.

При превышении ограничения сервер может вернуть код 429.

API Quota

Quota определяет общий объем использования API за более длительный период.

Например, тариф предусматривает определенное количество запросов в месяц.

Rate Limit регулирует скорость обращения, а Quota — совокупный объем использования.

API и CORS

CORS — браузерный механизм контроля запросов между разными origin.

Если Frontend находится на одном домене, а API на другом, Backend может явно разрешить обращения с нужного источника.

CORS не заменяет авторизацию. Даже если браузеру разрешено отправить запрос, API все равно должно проверить права пользователя.

Валидация API

API должно проверять структуру и содержимое каждого запроса.

Например, сумма заказа не может быть отрицательной, email должен соответствовать ожидаемому формату, а идентификатор товара должен существовать.

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

Идемпотентность API

Идемпотентность означает, что повторное выполнение одного и того же запроса не приводит к нежелательному повторению операции.

Это особенно важно для платежей и заказов.

Например, клиент отправил запрос на оплату, но не получил ответ из-за сетевого сбоя и повторил его. Система должна предотвращать двойное списание.

Для этого могут использоваться специальные idempotency keys и серверная логика.

Timeout API

Клиент не должен ждать ответ бесконечно.

Timeout определяет максимальное время ожидания операции.

Если зависимый сервис завис, правильный timeout помогает освободить ресурсы и вернуть контролируемую ошибку.

Слишком короткий timeout тоже опасен, поэтому значения выбираются на основе реального поведения системы.

Retries в API

Некоторые временные ошибки можно обрабатывать повторной попыткой.

Однако автоматический Retry безопасен не для всех операций.

Повтор GET-запроса обычно менее опасен, чем повтор создания платежа.

Поэтому retries должны учитывать идемпотентность и тип операции.

Версионирование API

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

Если внешние клиенты зависят от старого поведения, резкое изменение может сломать их приложения.

Версионирование позволяет поддерживать старый контракт в течение переходного периода.

/api/v1/orders
/api/v2/orders

Существуют и другие модели версионирования. Главное — заранее определить политику совместимости.

Backward Compatibility

Backward Compatibility означает возможность старого клиента продолжать работать после обновления сервера.

Например, добавление нового необязательного поля обычно менее опасно, чем переименование уже используемого.

Для публичных API обратная совместимость особенно важна, поскольку компания не контролирует скорость обновления всех клиентов.

Breaking Change

Breaking Change — изменение, которое нарушает работу существующих клиентов.

Например, удаление обязательного endpoint, изменение типа поля или новое обязательное требование может быть несовместимым.

Такие изменения требуют новой версии API или согласованной миграции клиентов.

Документация API

API практически бесполезно для внешнего разработчика без понятной документации.

Она должна объяснять доступные endpoint, методы, параметры, форматы ответов, способы аутентификации и возможные ошибки.

Хорошая документация также содержит реальные примеры запросов и сценарии использования.

OpenAPI

OpenAPI — формат описания HTTP API, который позволяет формально зафиксировать endpoint, параметры, структуры данных и ответы.

На основе такого описания можно генерировать интерактивную документацию, клиентский код и часть автоматических проверок.

Формальный контракт помогает поддерживать согласованность между Backend, Frontend и внешними интеграциями.

Swagger и API

Термин Swagger часто встречается рядом с OpenAPI и инструментами для документации и тестирования API.

Интерактивный интерфейс позволяет разработчику посмотреть доступные методы и выполнить тестовый запрос прямо из браузера.

Для внутренних систем такой инструмент значительно ускоряет интеграцию между командами.

API Contract

API Contract — формальное или логическое соглашение о взаимодействии клиента и сервера.

Он описывает входные параметры, структуры ответов, ошибки и другую ожидаемую семантику.

Если Backend меняет контракт без согласования, Frontend или внешняя система могут перестать работать.

Contract Testing

Contract Testing проверяет, что клиент и поставщик API одинаково понимают контракт.

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

Тест помогает обнаружить несовместимое изменение до production.

API и Webhook

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

Например, интернет-магазин отправляет запрос платежной системе, а после завершения оплаты система сама вызывает Webhook магазина.

Таким образом, API и Webhook часто используются совместно.

Polling и Webhook

PollingWebhook
Клиент регулярно спрашивает о состоянииСервер отправляет уведомление при событии
Проще в некоторых сценарияхМеньше лишних запросов
Может создавать задержку между проверкамиТребует доступного callback endpoint

API и интеграция систем

API является одним из основных способов интеграции корпоративных систем.

Например, CRM передает заказ в учетную систему, интернет-магазин получает остатки, а ERP отправляет данные в сервис доставки.

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

API и 1С

В корпоративной инфраструктуре API может использоваться для обмена данными между 1С и внешними системами.

Например, сайт передает заказы, CRM получает данные о клиентах, а внешнее приложение запрашивает информацию о документах.

Конкретный способ интеграции зависит от конфигурации, архитектуры и требований к обмену.

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

API и мобильные приложения

Мобильное приложение обычно не содержит основную базу бизнес-данных внутри устройства.

Оно обращается к Backend API для авторизации, получения информации и выполнения операций.

Один API может одновременно обслуживать мобильный клиент и веб-интерфейс.

API и облачная инфраструктура

Современные облачные платформы предоставляют API для программного управления ресурсами.

Через него можно создавать виртуальные машины, сети, диски и другие объекты.

Terraform и другие IaC-инструменты используют такие API для автоматического управления инфраструктурой.

API и Terraform

Terraform взаимодействует с внешними платформами через Providers, которые используют API соответствующих сервисов.

Инженер описывает желаемый ресурс в конфигурации, а Terraform преобразует его в необходимые API-вызовы.

Таким образом, API является фундаментальной частью Infrastructure as Code.

API и CI/CD

CI/CD-системы активно используют API.

Pipeline может вызвать API Container Registry, облачной платформы, Kubernetes или стороннего сервиса.

Например, после сборки приложение автоматически отправляет запрос для создания deployment или обновления конфигурации.

API и GitLab

Платформы разработки предоставляют API для автоматизации работы с проектами, pipelines, задачами и другими объектами.

Это позволяет интегрировать GitLab с внутренними системами компании и автоматизировать повторяющиеся процессы.

Доступ к такому API необходимо ограничивать токенами с минимально необходимыми правами.

API и логирование

API должно создавать полезные технические журналы.

Например, полезно фиксировать endpoint, код ответа, время выполнения и Request ID.

При этом нельзя помещать в логи пароли, токены авторизации и другие секреты.

Для расследования инцидентов особенно полезно связывать запросы нескольких сервисов через единый идентификатор.

API и Observability

API является важным объектом мониторинга и Observability.

Для него контролируют количество запросов, Error Rate и latency.

Метрики показывают общую проблему, логи помогают найти конкретную ошибку, а Distributed Tracing показывает путь вызова через несколько сервисов.

Основные метрики API

МетрикаЧто показывает
Request RateКоличество запросов
Error RateДолю ошибок
LatencyВремя ответа
AvailabilityДоступность API
ThroughputОбрабатываемый объем операций

API и Prometheus

Backend может экспортировать метрики API в Prometheus.

Например, количество запросов по endpoint и распределение времени ответа.

На основе этих данных создаются алерты и SLI.

API и OpenTelemetry

OpenTelemetry позволяет отслеживать API-запросы через распределенную систему.

Каждый запрос получает Trace ID и может содержать несколько Span.

Например, trace показывает время обработки HTTP-запроса, SQL-запроса и обращения к внешнему платежному API.

API и производительность

Скорость API зависит от многих факторов: бизнес-логики, базы данных, cache, сетевых запросов и внешних сервисов.

Если endpoint работает медленно, увеличение CPU не всегда решает проблему.

Причиной может быть неоптимальный SQL-запрос или последовательное обращение к нескольким внешним системам.

Поэтому производительность необходимо анализировать по всей цепочке.

Pagination

API не должно без необходимости возвращать миллионы объектов в одном ответе.

Pagination разделяет большой список на части.

Например, клиент получает первые 50 заказов и отдельно запрашивает следующую страницу.

Это уменьшает объем ответа, потребление памяти и нагрузку на базу.

Filtering и Sorting

API может позволять клиенту фильтровать и сортировать данные на сервере.

Например, получить только оплаченные заказы за определенный период.

Это эффективнее, чем загружать все данные и фильтровать их на Frontend.

При этом параметры фильтрации должны валидироваться.

Кэширование API

Некоторые ответы можно временно кэшировать.

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

Кэширование может выполняться на Backend, Reverse Proxy, API Gateway или CDN.

Главная сложность заключается в актуальности данных и правильном времени жизни кэша.

API и CDN

CDN традиционно используется для статических ресурсов, но в некоторых архитектурах способен кэшировать и определенные HTTP API-ответы.

Это особенно полезно для публичных данных, одинаковых для большого количества пользователей.

Персонализированные и чувствительные ответы требуют значительно более осторожной настройки.

Synchronous API

В синхронной модели клиент отправляет запрос и ожидает результат в рамках этого соединения.

Это удобно для быстрых операций: получить карточку товара или проверить статус пользователя.

Длительные задачи лучше не удерживать в обычном HTTP-запросе неопределенно долго.

Asynchronous API

Для длительной операции сервер может сразу принять задачу и вернуть ее идентификатор.

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

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

API и Message Queue

API часто используется вместе с очередями сообщений.

Например, пользователь создает заказ через HTTP API. Сервер сохраняет его и отправляет событие в очередь.

Другие компоненты асинхронно запускают доставку, email и аналитику.

Это уменьшает связность компонентов и время пользовательского ответа.

API SLA

Для критичных или внешних API могут определяться требования к доступности, времени ответа и поддержке.

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

SLA не делает API надежным автоматически, но формализует ожидаемый уровень сервиса.

API First

API First — подход, при котором контракт интерфейса проектируется до или параллельно реализации Backend.

Команды заранее согласовывают структуры данных, endpoint и ошибки.

Frontend может начать разработку на основе контракта, даже если реальный Backend еще не готов.

Такой подход особенно полезен при независимой работе нескольких команд.

API Economy

Для некоторых компаний API является не только техническим интерфейсом, но и частью продукта.

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

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

Типичные ошибки при создании API

  1. Не документировать endpoint.
  2. Возвращать разные структуры ошибок без общей логики.
  3. Не проверять права на сервере.
  4. Передавать секреты в URL.
  5. Не ограничивать количество запросов.
  6. Не задавать timeout при вызове внешних сервисов.
  7. Ломать старых клиентов без версионирования.
  8. Возвращать слишком большие списки без Pagination.
  9. Записывать токены и пароли в логи.
  10. Не собирать метрики Error Rate и Latency.

Как спроектировать хороший API

Шаг 1. Определить пользователей API

Нужно понять, кто будет клиентом: Frontend, мобильное приложение, партнер или внутренний сервис.

Шаг 2. Определить бизнес-операции

Необходимо описать, какие действия должен выполнять клиент и какие данные получать.

Шаг 3. Создать понятный контракт

Endpoint, методы и структуры данных должны быть последовательными и предсказуемыми.

Шаг 4. Спроектировать безопасность

Нужно заранее определить аутентификацию, права, Rate Limiting и работу с секретами.

Шаг 5. Продумать ошибки

Клиент должен получать понятные коды и сообщения, которые можно обработать программно.

Шаг 6. Добавить документацию

Описание API должно развиваться вместе с реализацией.

Шаг 7. Настроить Observability

Необходимо измерять количество запросов, ошибки и время ответа.

Шаг 8. Продумать изменение версий

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

Практический пример

Компания создает сервис доставки и хочет позволить интернет-магазинам автоматически создавать отправления.

Она предоставляет API с endpoint для расчета стоимости, создания заказа и получения статуса доставки.

Интернет-магазин получает API Key и отправляет HTTPS-запрос с параметрами посылки.

API проверяет ключ, валидирует адрес и размеры, сохраняет заказ и возвращает его идентификатор.

Когда статус доставки меняется, сервис отправляет Webhook интернет-магазину.

Для защиты от перегрузки действует Rate Limiting. Каждому запросу присваивается Request ID, а основные показатели отправляются в систему мониторинга.

Новая версия API сначала выпускается параллельно со старой, чтобы партнеры могли постепенно обновить интеграции.

В результате магазину не нужно знать внутреннее устройство логистической платформы: вся интеграция строится через стабильный программный контракт.

API для бизнеса

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

Например, сотруднику больше не нужно копировать заказы из интернет-магазина в CRM: системы передают информацию автоматически.

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

При этом плохо спроектированный API становится техническим долгом. Каждое несовместимое изменение затрагивает множество клиентов, поэтому стабильность интерфейса имеет прямое бизнес-значение.

Когда нужен API

  • Frontend должен получать данные с Backend;
  • нужно интегрировать несколько систем;
  • создается мобильное приложение;
  • используются микросервисы;
  • партнерам нужен программный доступ;
  • необходимо автоматизировать бизнес-процессы;
  • создается облачная платформа;
  • нужно предоставить внешним разработчикам функциональность продукта.

Когда отдельный API может быть не нужен

Не каждое небольшое приложение требует отдельного публичного API.

Если простой серверный сайт полностью формирует HTML и не имеет внешних интеграций, выделение отдельного API-слоя может добавить ненужную сложность.

При этом внутри приложения программные интерфейсы все равно могут существовать между модулями.

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

ТерминСвязь с API
REST APIРаспространенный подход к построению веб-API
HTTPПротокол, поверх которого работают многие API
JSONПопулярный формат передачи данных
BackendЧасто предоставляет API клиентским приложениям
FrontendИспользует API для получения и изменения данных
API GatewayУправляет доступом и маршрутизацией к нескольким API
WebhookПозволяет серверу уведомлять другую систему о событии
OpenAPIФормат формального описания HTTP API
OAuthИспользуется в сценариях делегированного доступа
MicroservicesВзаимодействуют друг с другом через API и сообщения
gRPCАльтернативный подход к межсервисным вызовам
ObservabilityПозволяет контролировать работу и производительность API

Краткий итог

API — программный интерфейс, который определяет правила взаимодействия между приложениями и сервисами. Клиент отправляет запрос, сервер выполняет операцию и возвращает результат в согласованном формате.

API используется между Frontend и Backend, мобильными приложениями, микросервисами, корпоративными системами, облачными платформами и партнерскими сервисами. Распространенными подходами являются REST, SOAP, GraphQL и gRPC.

Хороший API должен иметь понятный контракт, документацию, безопасную аутентификацию и авторизацию, продуманное версионирование, обработку ошибок и Observability. Для критичных операций также важны идемпотентность, Rate Limiting, таймауты и контроль обратной совместимости.

Частые вопросы

6 вопросов
Что такое API?

API, или Application Programming Interface, — программный интерфейс, который определяет правила взаимодействия между приложениями. Через него одна система может запрашивать данные или выполнять функции другой системы без доступа к ее внутреннему коду.

Что такое REST API?

REST API — подход к созданию веб-интерфейсов, при котором данные представлены как ресурсы, а операции над ними обычно выполняются с помощью стандартных HTTP-методов GET, POST, PUT, PATCH и DELETE.

Чем API отличается от Backend?

Backend — серверная часть приложения, которая реализует бизнес-логику и работает с данными. API — интерфейс, через который Frontend, мобильное приложение или другая система обращается к этой логике.

Что такое API Endpoint?

API Endpoint — конкретная точка интерфейса, предназначенная для выполнения определенной операции. В HTTP API это обычно сочетание URL и метода, например GET /api/orders для получения списка заказов.

Как защитить API?

Для защиты API используют HTTPS, аутентификацию, авторизацию, валидацию входных данных, Rate Limiting, безопасное хранение токенов и ключей, журналирование и контроль доступа к административным функциям.

Зачем нужно версионирование API?

Версионирование позволяет развивать интерфейс без немедленного нарушения работы существующих клиентов. Если новая версия содержит несовместимые изменения, старый API можно временно поддерживать параллельно, пока интеграции не будут обновлены.

Была ли статья полезна?
Документ обновляется командой EFSOL. Свяжитесь с нами, если нашли неточность.
Нужна консультация?

Поможем спроектировать, развернуть и сопроводить облачную или гибридную инфраструктуру под задачи вашего бизнеса.

Ответим в течение часа в рабочее время
Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.