Сегодня предлагаем разобрать такую тему как API-вызовы: что это такое, откуда берутся API-запросы и есть ли взаимосвязь между их количеством и производительностью.
Ответы на эти и другие вопросы вы найдете в данной статье.
1. Передача данных с помощью API: ситуации на примере
Сравним два сценария выгрузки данных:
Ситуация первая
Вашей компании потребовалась миграция данных, допустим, из облака Битрикс24 в коробку Битрикс24.
Нужно перебросить на другой портал все накопившиеся задачи, контакты, сделки и еще гору других сущностей с прикрепленными к ним комментариями и файлами.
Для выполнения такой задачи можно нанять разработчика, однако обойдется это недешево. Выполнить миграцию лучше и дешевле всего будет с помощью интеграционной шины.
Как связан объем API-вызовов в интеграциях по обмену данными и бизнес-польза для пользователей CRM? Рекомендуем прочитать статью здесь.
Ситуация вторая
Допустим, вашей компании не требуется миграция всех данных, а только, к примеру, сделок. Интеграционная шина справится и тут.
Решение в обоих случаях одинаковое, а вот нагрузка на систему в первой ситуации будет гораздо выше, чем во второй.
Если мощность платформы невелика, то полная миграция данных попросту невозможна и через API их не передать.
Остается либо передавать только самую важную информацию, либо прибегать к более производительным, а значит и более затратным вариантам.
О чем не расскажет ваш сотрудник: почему нельзя просто взять и передать данные из сервиса А в Битрикс24? Читайте по ссылке.
Однако не от одного лишь объема данных зависит производительность.
В дело может вмешаться и генерируемое интеграцией число API-вызовов.
Тут математика простая - чем больше сущностей необходимо выгрузить, тем больше для этого требуется API-запросов.
Что такое нагрузка и ограничение API-вызовов: как понять функционал интеграции с Битрикс24? Подробности в статье.
Плюс к процессу выгрузки можно подключить еще и фильтрацию, что также увеличит число API-запросов.
Отсюда следует, что даже если нужно выгрузить совсем немного данных, это может потребовать большее число вызовов, чем планировалось.
Разберем подробнее генерацию API-вызов при работе интеграции.
2. Выгрузка дел с одного Битрикс24 в другой: пример подсчета API-запросов
Шаг первый: Откуда
На первом шаге настройки интеграции запрашивается дело. Здесь только один API-запрос на получение списка дел, так как в фильтрации указаны строчные поля и дополнительных запросов здесь нет.
Шаг второй: Инструменты
Используем GET-запрос для получения контактов по делу с указанным URL /crm.contact.list?filter[CREATED_BY_ID]=639:
Шаг третий: Куда
Здесь также всего один запрос - на создание дела на портале Б.
Шаг четвертый: Сопоставление данных
API-запросы отсутствуют, так как тут идет сопоставление и заполнение полей.
Шаг пятый: Запуск
Тут аналогично, запросы отсутствуют.
По итогу потребуется три API-запроса для выгрузки одного дела типа "Звонок" из портала А в портал Б.
3. Инструменты в интеграции
Шаг первый: Откуда
3.1. Первый API-запрос запускает интеграцию и на данный запрос интеграция дает ответ.
Есть несколько событий, которые будут создавать больше запросов, чем один. Например, получение откликов по всем вакансиям на НН.ru - там один запрос получает набор элементов, потом по каждому элементу еще один запрос на набор элементов и по каждому из них снова запрос. Также в зависимости от способа авторизации сервиса раз в какой-то промежуток времени может уходить запрос на обновление токена доступа.
3.2 В случае наличия в ответе более пятидесяти сущностей (к примеру,в Битрикс24 за пять минут обновилось более пятидесяти сделок) интеграция выполнит по одному допзапросу на каждый последующие сущности.
Эта цифра может быть меньше на иных платформах.
3.3. Периодически для отображения полной картины в мгновенных запросах потребуются допзапросы.
3.4. Дополнительным запросом также считается любой выставленный фильтр (базовый или пользовательский).
Запросом считается фильтр, в котором элементы для выбора берутся из сервиса-источника.
Но, если в фильтре вводится, например, строка, то тут нет запроса.
По итогу на первом шаге настройки инткграции нам потребуется от трех и более (в зависимости от фильтров) запросов.
Для примера разберем первый шаг интеграции по выгрузке смарт-процесса Битрикс24.
На данном шаге запрашивается обновление смарт-процесса в Битрикс24, считаем по одному запросу на каждые 50 сущностей, затем с двух фильтров (один предопределенный и один пользовательский) по еще одному запросу.
Итого, только шаг 1 уже содержит три API-вызова.
Шаг второй: Инструменты
API-вызовы создают следующие инструменты:
Распознавание речи (Yandex) - это инструмент, использующий искусственный интеллект Yandex SpeechKit, например, для перевода звонка в текст.
Запрос в YandexGPT - запросы к искусственному интеллекту YandexGPT могут выполнить, например, поиск ключевых слов в расшифрованной записи звонка.
API-запрос - его можно настроить в зависимости от ваших задач. GET-запрос получает данные, POST-запрос отправляет данные на сервер.
От количества таких инструментов может сильно отличаться количество запросов в одной и той же интеграции.
Также на шаг 2 попадают сущности с шага 1 по отдельности.
Это значит, что если на шаге 2 у нас три инструмента с API-запросом, а на шаге 1 получаем 10 сущностей, то итоговое количество вызовов на шаге 2 для всех 10 сущностей рассчитывается как 10*3=30.
Есть нюанс для GET-запросов, полностью одинаковые GET-запросы кэшируются на 10 минут, и если за 10 минут был такой же GET-запрос, то он не считается
Шаг третий: Куда
С каждой сущности с шага 1 делается API-запрос в итоговый сервис, а значит, получив 10 сущностей на первом шаге, на шаге 3 создается 10 API-запросов.
Шаг четвертый: Сопоставление данных
Запросы тут не создаются, равно как и на пятом шаге .
Резюмируем
По итогу подсчетов получаем цифру в три API-запроса - ровно столько необходимо для того, чтобы выгрузить одну сущность и передать ее в другой сервис при минимальном количестве настроенных фильтров.
Число запросов за все время работы интеграции или за 24 часа отследить можно в списке интеграций:
Общее число вызовов по конкретному сервису или порталу можно посмотреть здесь:
В случае потребности добавления большего числа фильтров можно использовать ИИ и настроить допзапросы на втором шаге настройки интеграции.
А сумма вызовов в учетной записи - здесь:
Если потребуется добавить большее числа фильтров, то можно использовать ИИ и настроить допзапросы на втором шаге настройки интеграции.
Количество API-запросов из-за этого увеличится, а значит и возрастет нагрузка.
Не всегда высокая нагрузка равна бизнес-пользе. Часто слишком большое количество API-запросов связано с тем, что интервал запуска интеграции слишком короткий и его нужно скорректировать.
Регистрируйтесь в личном кабинете Пинкит по ссылке:https://lk.pinkit.io/register и приходите на бесплатную встречу, где мы проанализируем вашу задачу и подберем оптимальные условия, чтобы производительность была высокой.
Алексей Окара,
основатель Пинол и продакт-менеджер Пинкит
Время работы специалистов Пн.–Пт.: с 9:30 до 18:30; Сб.-Вс.: выходные.
Павел Филатов
|
Самые востребованные интеграции по API: Google Sheets, Unisender, СберБанк, HH.ru, Контур.Фокус, GetCourse, Банки, iiko. |
Павел Филатов
|
Для тех, кто идет в ногу со временем, мы проводим регулярные
Если у Вас есть вопросы по настройке, по функционалу или вы просто хотите быть в курсе новых трендов, тогда регистрируйтесь и подключайтесь к нашим вебинарам. Для вас всегда интересные спикеры, разбор задач на примере реальных кейсов, а также подарки самым активным. |
Павел Филатов
|
|