10 Окт
2023
Мы получаем множество отзывов, вопросов и предложений от пользователей Qform. Многие просили сделать так, чтобы можно было обмениваться данными с любым сервисом, а не выбирать только из готовых. Мы прислушались к пользователям, вынесли эту задачу в приоритет и стали думать над ее решением.
В поиске решения наша команда провела мониторинг рынка и анализ конкурентов. Мы заметили, что некоторые из них открывают доступ к API, чтобы расширить способы интеграции. Но это реализовано далеко не у всех, а значит список сервисов для подключения ограничен. Взяв это на вооружение, мы приступили к разработке функционала. Суть идеи заключалась в том, чтобы при помощи API открыть доступ к некоторым функциям QForm. Это поможет настроить интеграцию с другими сервисами и автоматизирует работу. Но в типичных случаях для получения данных нужно постоянно отправлять запросы на сервер. Это занимает слишком много времени.
Поэтому помимо API мы решили добавить поддержку вебхуков. Это тот же API, только обратный. Он запускается по событию, что в нашем случае будет отправка формы.
В этой статье поработаем с каждой технологией и узнаем, почему это важно для бизнеса.
Переводится как программный интерфейс приложения и позволяет объединить работу двух программ. Включает в себя набор функций, который упрощает подключение и отправляет заявки во внешние сервисы. Эту технологию можно представить в виде заказа в ресторане. Когда вы заказываете (делаете запрос) еду у официанта, он доставляет ее с кухни. В этом случае официант – это API, а кухня – сервер.
Разберемся на примере. Допустим, нужно подключить интеграцию с сервисом, которого нет среди готовых в QForm. Например, для складского учета. Вот тут и поможет API. Для этого не нужно писать сложный код. Все есть в инструкции (находится в разделе «Справка» и доступна зарегистрированным пользователям): как создать токен и привязать к сайту, какие функции использовать. И тогда любой может подключить API самостоятельно.
Главное убедиться, что другой сервис тоже умеет работать с API, то есть отправлять запросы и считывать данные. Запросы к API QForm выглядят так:
В зависимости от того, что необходимо получить, формируется и отправляется запрос, а в ответ приходят нужные данные.
Как использовать API для бизнеса:
Представляют собой своего рода «обратные API» и оповещают о новых событиях на сервере (отправка формы, новый комментарий или письмо). Для понимания вернемся к нашему примеру с заказом еды, но только это будет доставка. Во время заказа вы оставляете контактный номер телефона (это будет адрес вебхука), на который приходят уведомления (заказ готов, передан курьеру, в пути, доставлен). Вы не отправляете запросы, чтобы узнать статус. Вместо этого используется номер телефона (адрес вебхука). И когда происходит событие, служба доставки (сервер) сама отправляет запрос на этот адрес.
Допустим, вы хотите получать уведомление всякий раз при отправке формы. Чтобы сервер QForm знал, куда отправлять данные, в настройках формы есть поле ввода. Туда нужно вставить URL сервиса, который эти данные получит. И вот после отправки формы данные попадают в базу данных QForm, затем срабатывает вебхук и отправляет данные на указанный адрес.
Воспользуемся сайтом webhook.site. Он предоставит нам сгенерированную ссылку, которая будет принимать POST-запросы. Именно такой метод обычно используется в вебхуках. Открываем ресурс и копируем ссылку.
Далее открываем новую вкладку и переходим на QForm. Проходим авторизацию, открываем страницу настроек нужной формы и переходим в раздел «Вебхуки». В первое поле вводим любое название вебхука, в следующее вставим скопированную ранее ссылку. Жмем кнопку Подключить и видим, что вебхук появился в списке.
Отправляем форму с сайта, чтобы протестировать.
QForm сразу отправит объект с данными методом POST на указанный ранее адрес. Вернувшись обратно на страницу webhook.site, увидим, что отображается новый запрос. Верхняя панель содержит детали запроса, а нижняя – сам объект с данными.
Это самый простой пример обработки вебхука. Он слушает ответы и как только приходит новый, происходит вызов и моментальная передача информации. Таким образом можно заносить данные в свою базу, оповещать пользователей. Все происходит автоматически.
Собирать данные с формы можно как через API, так и через вебхук. Но ключевая разница во времени.
API может отправлять запросы через определенный промежуток времени, к примеру, каждые десять минут. И если за это время происходила отправка формы, то API извлечет данные и разместит в другом сервисе.
Вебхук, наоборот, не станет ждать, а будет срабатывать при каждой отправке формы. В этом случае вся ответственность как бы ложится на сервер, который будет оповещать вас при наступлении события.
Запомните: вебхук – это инструмент для оповещения. Передавать большие объемы данных с его помощью не рекомендуется, так как сервер может принять это за спам-атаку и запретить отправку данных.
Так какой из этих механизмом лучше? Тут нужно смотреть по обстоятельствам: какие стоят задачи, какие будут затраты времени, какой объем и типы данных. Вебхуки работают быстрее – они отправляют информацию моментально при поступлении. При передаче больших объемов данных лучше использовать API. Оба механизма полезны и есть в QForm.
Многие боятся этих технологий, думая, что они сложные. Но мы постарались донести простыми словами и показать наглядно, как все просто и помогает улучшить работу с данными.
Связывайте и интегрируйте разные сервисы без единой строчки кода.