Если вы уже некоторое время занимаетесь разработкой, то наверняка сталкивались с такими терминами как вебхук (webhook) и API. Оба инструмента используются для того, чтобы взаимодействовать с данными. Но они не взаимозаменяемы — то есть, в большинстве случаев нет нужды выбирать какой-то один. Чаще всего они дополняют друг друга.

Разница в том, что API запрашивает данные, проверяет, появилось ли что-то новое, а потом собирает информацию. А вебхук — событийно-управляемый инструмент: это значит, что он актривируется в ответ на какое-либо событие и отправляет информацию на предустановленный URL.

API извлекает данные из приложения, а вебхуки их выталкивают. Звучит непонятно? Попробуем объяснить на примерах.

💡 Узнать больше о веб-разработке и зерокодинге в целом можно на нашем бесплатном двухдневном марафоне! На встрече мы говорим не только о решениях для создания приложений, но также о заказах, вакансиях и IT-рынке в России.

Что такое API?

API — аббревиатура. Она расшифровывается как application programming interface или интерфейс программирования приложений. Это своего рода цифровая инфраструктура, созданная для того, чтобы приложения обменивались данными. А если смотреть на API с технической стороны, это набор программных функций для создания связей между ресурсами.

API-EN-1.png

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

Для примера возьмем Shopify — платформу для управления розничным интернет-магазином. Несмотря на то, что платформа эта многофункциональная, все равно есть фичи, которые в нее не встроены. Например, у нее нет инструментов для обеспечения коммуникации команды, выполнения заказа и расчета. Эти функции обычно берут на себя сторонние сервисы.

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

Сейчас API есть практически у всех крупных сайтов и приложений, но есть и те, у которых его нет. Это не страшно. Для таких ситуаций существуют специальные сервисы, например, Browse AI — мы уже писали о нем.

Что такое вебхук?

Webhook можно перевести с английского как «веб-перехватчик» — или даже буквально как «веб-крючок». С его помощью одно приложение передает другому информацию о происходящем в настоящем времени событии. Это своего рода мышеловка, в которой в качестве мыши выступают события. Как только на пластинку оказывается давление, мышеловка защелкивается.

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

1_D0JykQxrL0IpYCZ6LH0CiA.png

Говоря техническим языком, вебхук — это определенный пользователем обратный вызов HTTP, который передает данные о событии в сторону URL, созданного специально для этого. В качестве данных выступает информация произвольного события — например, ответы из заполненной онлайн-формы.

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

Вебхук настроен «слушать» ответы. Как только приходит новый, он триггерится и сразу передает информацию другому приложению — скажем, в электронную таблицу Google Spreadsheet. Все происходит автоматически.

Вебхуки поддерживают не все приложения. Некоторые предлагают API, но не вебхуки.

И в чем разница?

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

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

Что сделает вебхук: сработает в тот момент, когда кто-то оставит ответ, и перенесет его в электронную таблицу. Планировать проверку на наличие ответов каждые пять минут не нужно.

Что выбрать для проекта?

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

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

В плане вариативности информации эффективнее API, потому что позволяет собирать более широкий спектр данных. В этом плане вебхуки ограничены. Зато API ограничены в другом: некоторые компании намеренно ставят лимиты на данные. Twitter ограничивает количество извлеченных твитов в 900 за 15 минут: это значит, что каждые 15 минут можно получить только 900 штук. Поэтому приложения для массового удаления твитов работают медленно.

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