Перейти к содержимому
akitoo
Технические статьи

Что такое API-интеграция? Методы и на что обратить внимание

Как системы общаются друг с другом? Запрос в реальном времени, вебхук, пакетная передача и очередь сообщений — и вопросы, которые нужно продумать заранее, чтобы интеграция была надёжной.

Alp3 мин чтения

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

Зачем нужна интеграция?

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

Четыре основных метода

1. Запрос в реальном времени (REST API)

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

2. Вебхук (уведомление о событии)

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

3. Пакетная передача по расписанию

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

4. Очередь сообщений

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

ПотребностьПодходящий метод
Нужен мгновенный ответЗапрос в реальном времени
Узнавать о событии, когда оно произошлоВебхук
Данные большого объёма с гибкими требованиями ко времениПакетная передача
Интенсивный поток операций, устойчивость к сбоямОчередь сообщений

На что обратить внимание, чтобы интеграция была надёжной

  • Устойчивость к повторам: Если один и тот же запрос придёт дважды, заказ не должен создаваться дважды. Операции нужно проектировать так, чтобы при повторном выполнении они давали тот же результат.
  • Повторные попытки: При временных ошибках операцию следует повторять с постепенно увеличивающимися интервалами.
  • Лимиты запросов: Большинство API ограничивает число запросов, которые можно выполнить за определённое время. Интеграцию нужно планировать с учётом этих лимитов.
  • Аутентификация: API-ключи и токены доступа должны храниться безопасно и выдаваться только с необходимыми правами.
  • Журналирование и мониторинг: Должно быть видно, какая операция когда была выполнена и почему завершилась неудачей. На случай ошибок нужно настроить автоматические оповещения.
  • Изменения версий: API другой стороны со временем меняется. Нужно следить за анонсами версий и быть готовыми к изменениям.
  • Сопоставление данных: Одно и то же понятие в двух системах может называться по-разному или храниться в разном формате. То, как будут сопоставляться поля, нужно задокументировать заранее.

Что делать с системами, у которых нет API?

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

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

  1. Какие данные, в каком направлении и как часто будут передаваться?
  2. Данные какой системы будут считаться верными при расхождении?
  3. Есть ли у другой системы документация и тестовая среда?
  4. Как будет продолжаться работа, если интеграция остановится?
  5. Кто будет отслеживать ошибки и кто будет на них реагировать?

Чтобы связать ваши системы между собой, ознакомьтесь с нашей услугой «API и интеграция систем».

Далее

Материалы по теме

Технические статьи

Веб-приложение, мобильное приложение или PWA: что и когда выбрать?

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

Технические статьи

Мультитенантная архитектура в SaaS: три подхода и критерии выбора

Как в SaaS-продукте данные каждого клиента отделяются от данных остальных? Сравнение подходов с общей схемой, отдельной схемой и отдельной базой данных с точки зрения изоляции, стоимости и эксплуатации.

Технические статьи

Когда разработка мобильного приложения на Flutter — правильный выбор?

Flutter позволяет разрабатывать приложения для iOS и Android на единой кодовой базе. Но подходит ли он для каждого проекта? Ситуации, в которых он силён, и ситуации, требующие внимания.

Контакты

У вас есть идея?Давайте воплотим её вместе.

Обсудим ваш проект
Обсудим ваш проект