Что такое API-интеграция? Методы и на что обратить внимание
Как системы общаются друг с другом? Запрос в реальном времени, вебхук, пакетная передача и очередь сообщений — и вопросы, которые нужно продумать заранее, чтобы интеграция была надёжной.
Alp3 мин чтения
API (интерфейс прикладного программирования) — это дверь, которую программа открывает для обмена данными с другими программами. API-интеграция же — это настройка автоматического общения двух или более систем через такие двери. Заказ из вашего интернет-магазина, который сам попадает в бухгалтерскую программу, или трек-номер отправления, который автоматически отправляется клиенту, — примеры интеграции.
Зачем нужна интеграция?
Когда данные между системами переносятся вручную, возникают три проблемы: потеря времени, опечатки и неактуальность данных. С ростом числа операций эти проблемы усугубляются. Благодаря интеграции одна и та же информация вводится в одном месте и попадает во все системы, где она нужна.
Четыре основных метода
1. Запрос в реальном времени (REST API)
Одна система обращается к другой в тот момент, когда ей нужна информация, и получает ответ. Подходит для таких операций, как запрос остатков, получение цен или создание записи. Сегодня это самый распространённый метод.
2. Вебхук (уведомление о событии)
Когда происходит событие, система-источник сама сообщает о нём другой стороне. Пример — получение уведомления, когда оплата завершена или изменился статус доставки. Это избавляет от необходимости постоянно опрашивать систему.
3. Пакетная передача по расписанию
Данные передаются с определённой периодичностью, пакетами. Этим методом выполняются ночные сверки или файловый обмен со старыми системами, у которых нет API. Он не работает в реальном времени, зато прост и устойчив.
4. Очередь сообщений
Операции записываются в очередь и обрабатываются по порядку. Даже если принимающая система временно недоступна, сообщения не теряются. Этот метод выбирают при большом объёме операций и когда на одно и то же событие должны реагировать несколько систем.
| Потребность | Подходящий метод |
|---|---|
| Нужен мгновенный ответ | Запрос в реальном времени |
| Узнавать о событии, когда оно произошло | Вебхук |
| Данные большого объёма с гибкими требованиями ко времени | Пакетная передача |
| Интенсивный поток операций, устойчивость к сбоям | Очередь сообщений |
На что обратить внимание, чтобы интеграция была надёжной
- Устойчивость к повторам: Если один и тот же запрос придёт дважды, заказ не должен создаваться дважды. Операции нужно проектировать так, чтобы при повторном выполнении они давали тот же результат.
- Повторные попытки: При временных ошибках операцию следует повторять с постепенно увеличивающимися интервалами.
- Лимиты запросов: Большинство API ограничивает число запросов, которые можно выполнить за определённое время. Интеграцию нужно планировать с учётом этих лимитов.
- Аутентификация: API-ключи и токены доступа должны храниться безопасно и выдаваться только с необходимыми правами.
- Журналирование и мониторинг: Должно быть видно, какая операция когда была выполнена и почему завершилась неудачей. На случай ошибок нужно настроить автоматические оповещения.
- Изменения версий: API другой стороны со временем меняется. Нужно следить за анонсами версий и быть готовыми к изменениям.
- Сопоставление данных: Одно и то же понятие в двух системах может называться по-разному или храниться в разном формате. То, как будут сопоставляться поля, нужно задокументировать заранее.
Что делать с системами, у которых нет API?
Не каждая программа предоставляет API. В этом случае рассматриваются такие варианты, как обмен файлами, чтение на уровне базы данных или сервис-посредник, работающий между системами. Риски у каждого варианта свои; первым выбором всегда должен быть способ, который поддерживает производитель ПО.
Вопросы, на которые нужно ответить до начала работ
- Какие данные, в каком направлении и как часто будут передаваться?
- Данные какой системы будут считаться верными при расхождении?
- Есть ли у другой системы документация и тестовая среда?
- Как будет продолжаться работа, если интеграция остановится?
- Кто будет отслеживать ошибки и кто будет на них реагировать?
Чтобы связать ваши системы между собой, ознакомьтесь с нашей услугой «API и интеграция систем».