Исходный пост был написан в блоге Strapi, вы можете прочитать его здесь.

Веб-перехватчики - это термин, который вы, возможно, слышали раньше в других приложениях, и, возможно, вас зацепили им (каламбур 😉), задавшись вопросом, о чем он. Мы очень рады сообщить, что функция Webhooks теперь доступна в последней версии Strapi, выпущенной сегодня! Полный список изменений можно найти в репозитории здесь.

Мы хотели бы особо поблагодарить @MatWrz, @pataiadam, @nurikabe и @adcar за их вклад в этот выпуск. Прекрасная работа!

Веб-перехватчики - это простой способ для различных приложений связываться и получать уведомления при возникновении нового события.
Например, веб-перехватчики используются, когда вы получаете уведомления от своего твиты в Slack или когда вы получаете SMS-уведомления от вашего банковского приложения.

В мире безголовых CMS веб-перехватчики очень полезны для создания вашего внешнего интерфейса после модификации в вашей панели администрирования. Но есть и другие полезные сценарии, о которых мы поговорим через секунду.

Давайте разберемся с этим и посмотрим, как это работает в Strapi!

Что такое веб-перехватчики?

Веб-перехватчики - это автоматические сообщения, которые отправляются каждый раз, когда происходит событие. У них одна уникальная миссия: передавать сообщение или данные на уникальный адрес или URL.

Подумайте о своем почтовом ящике. В древние времена вам приходилось подключаться к своему почтовому ящику, чтобы проверить, есть ли у вас новые электронные письма.
В настоящее время ваши новые электронные письма приходят напрямую через push-уведомления. Проверять электронную почту намного проще. Вы получите автоматическое сообщение, как только получите новое электронное письмо. Бум.

Что ж, веб-перехватчики такие же, но между приложениями.

Технически как они работают?

Веб-перехватчики используют запросы HTTP POST. Когда инициируется событие, первое приложение отправляет полезные данные HTTP POST на URL-адрес второго приложения, настроенного в веб-перехватчике.

Самый простой способ работы HTTP-запросов - это добавление данных к URL-адресу и проверка связи с этим URL-адресом. URL-адрес выглядит следующим образом, с данными после вопросительного знака в URL-адресе:

https://yourapp.com/data/12345?Author=John&title=my_article&content=lorem_ipsum

Затем ваше приложение получит информацию о том, что произошло что-то новое, и сделает то, что должно.

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

Отправленные данные будут выглядеть так:

{
  "event": "entry.create",
  "created_at": "2020-01-10T08:47:36.649Z",
  "model": "address",
  "entry": {
    "id": 1,
    "geolocation": {},
    "city": "Paris",
    "postal_code": null,
    "category": null,
    "full_name": "Paris",
    "created_at": "2020-01-10T08:47:36.264Z",
    "updated_at": "2020-01-10T08:47:36.264Z",
    "cover": null,
    "images": []
  }
}

Итак, Webhooks - это то же самое, что API?

Есть много способов взаимодействия приложений с данными. Веб-перехватчики - лишь одна из них. API (интерфейсы прикладного программирования) похожи, но в то же время различны и полезны для конкретного использования.

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

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

Посмотрим, как это работает в Strapi.

Как использовать веб-перехватчики в Strapi?

В этом примере мы собираемся создать веб-перехватчик для автоматического развертывания модификации на Netlify.

1. Создание веб-перехватчика

Итак, сначала давайте создадим новый веб-перехватчик.

Ваш веб-перехватчик должен вызывать URL-адрес, в данном случае Netlify API, и должен содержать специальные заголовки, описывающие, что такое событие.

В зависимости от типа событий они могут иметь несколько заголовков. В разделе Хуки показано, какой объект из созданных, отредактированных и удаленных идентификаторов должен быть входит в состав доставленной полезной нагрузки.

2. Тестирование веб-перехватчика

После создания вам необходимо запустить тестовый запуск вновь созданного веб-перехватчика. Для этого в Strapi есть кнопка триггера, позволяющая узнать, полностью ли работает ваш веб-перехватчик.

3. Включение или отключение веб-перехватчиков.

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

Пользовательский интерфейс Strapi позволяет легко включить или отключить любой созданный веб-перехватчик.

Другие особенности

В этом выпуске также есть:

и многое другое!

Проверьте журнал изменений здесь.

Давайте начнем!

Если вы новичок в Strapi, просто попробуйте!

Взгляните на руководство Приступая к работе, чтобы начать работу, или начните работу со следующей командной строкой:

yarn create strapi-app my-app --quickstart

Втягиваться

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

Не видите в очереди интересующей вас функции? Не стесняйтесь отправлять запросы на новые функции или, что еще лучше, начать вносить свой вклад в Strapi на GitHub. Все вклады и пользователи приветствуются!