Исходный пост был написан в блоге 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 позволяет легко включить или отключить любой созданный веб-перехватчик.
Другие особенности
В этом выпуске также есть:
- обновление до purest 3.x с @thomb,
- новое руководство, объясняющее, как спланировать публикацию статьи с помощью функций CRON,
- новые параметры планирования для SendGrid Provider,
- новое руководство, объясняющее как создать систему ярлыков для сообщения, статьи или любого типа контента, который вы хотите,
и многое другое!
Проверьте журнал изменений здесь.
Давайте начнем!
Если вы новичок в Strapi, просто попробуйте!
Взгляните на руководство Приступая к работе, чтобы начать работу, или начните работу со следующей командной строкой:
yarn create strapi-app my-app --quickstart
Втягиваться
Ознакомьтесь с нашей дорожной картой общедоступных продуктов, чтобы узнать, над какими функциями мы будем работать дальше.
Не видите в очереди интересующей вас функции? Не стесняйтесь отправлять запросы на новые функции или, что еще лучше, начать вносить свой вклад в Strapi на GitHub. Все вклады и пользователи приветствуются!