Вступление
Есть три важных вопроса, которые выделяются при изучении новой технологии: Что , Почему и Как Анкет В Предыдущая статья , мы тщательно посмотрели на Что Webhooks есть и Почему Они вам нужны. Webhooks-это определенные пользовательские обратные вызовы HTTP, которые можно использовать для настройки связи между двумя независимыми онлайн-приложениями. Когда событие происходит в одном приложении, это приложение может отправлять уведомления о событии вместе с данными о событиях в другое приложение, используя веб -крюк.
Как работают веб -хуки
Коммуникация Webhook достигается путем отправки HTTP -запроса из исходного приложения в приложение для назначения. Когда событие происходит в исходном приложении, HTTP -запрос, который может содержать данные, относящиеся к вам, событие запускается. Этот HTTP -запрос отправляется в конечную точку приложения. Это конечная точка, представленная приложением назначения в исходное приложение, для отправки запросов Webhook. Конечная точка часто называют URL -адресом Webhook.
Запросы WebHook могут быть отправлены с помощью POST или получить методы запроса. Это зависит от предпочтений поставщика веб -крюков — информация о том, как потреблять запросы, всегда доступна в документации поставщика. В следующем разделе представлена более подробная информация о том, как найти правильную информацию о Webhooks из документации поставщика.
Как прочитать документацию для веб -крючков
Прохождение технической документации не воспринимается как забавное упражнение для большинства разработчиков, а документация от поставщиков Webhook не является исключением. У меня была справедливая доля разочарования, пытаясь найти соответствующую информацию из документации Webhook от разных поставщиков, поэтому позвольте мне поделиться некоторыми полезными советами, которые я обнаружил за эти годы, работая с Webhooks.
- Ищите Разработчики Раздел: Webhooks являются частью программного интерфейса поставщика веб -крючков, поэтому вы, скорее всего, найдете документацию для веб -крючков в этом разделе веб -сайта поставщика.
- Используйте строку поиска: Большая часть документации имеет функциональность поиска, которую вы можете использовать, чтобы быстро найти необходимую информацию с правильными ключевыми словами, например, «События WebHook*». *
- Проверьте типы событий: События являются основным интересом, когда дело доходит до веб -крючков. Знание типов событий поможет вам понять события, на которые вы можете подписаться. Например, сайт электронной коммерции может разрешить подписки на события, такие как элемент, добавляемый в корзину, покупку товара и т. Д.
- Найдите информацию о безопасности WebHook: Запросы WebHook являются регулярными HTTP -запросами и, таким образом, подвержены всем угрозам безопасности, с которыми сталкиваются HTTP -запросы. Вы хотите проверить информацию о безопасности веб -крючков поставщика, например, IP/домен белый список, токены аутентификации, клавиши API и т. Д.
- Ограничения и повторения: Как и обычные HTTP -запросы, запрос на веб -крюк может выйти из строя, и вам также необходимо рассмотреть масштабируемость на стороне API, получающего запросы. Таким образом, важна информация о максимальном количестве параллельных запросов и, если значение может быть настроено. Вы также хотите выяснить, если провайдер автоматически повторно повторно повторно поставлен, если нет, вам может потребоваться настроить собственную систему для достижения этого.
Учебное пособие: как настроить веб -крюк с помощью полосы
Теперь, когда у нас есть много знаний о веб -крючках, давайте введем эти знания в действие с помощью упражнения, используя Полоса Webhooks. Stripe-это простой в установленной шлюз электронных платежей, который обеспечивает платежную инфраструктуру для веб-приложений. Первый шаг — зарегистрироваться в учетной записи Stripe и зарегистрироваться для Stripe Webhooks, чтобы получить запросы WebHook на демонстрации Node.js сервер
Получение ключевой информации из документации Stripe
Для начала нам нужна солидная база знаний о полосовых веб -крючках, которую мы можем получить, используя РАСПОЛОЖЕНИЯ Анкет Информацию о Webhooks можно найти в документах AT Инструменты разработчика → Webhooks Анкет
Здесь вы можете найти информацию о Работа с различными языками программирования , Проверка полосы Проверка подписи Для аутентификации, Intripe Webhook Integration Лучшие практики и даже Пример интеграции Анкет
Создать учетную запись Stripe
В настоящее время регистрация для учетной записи Stripe требует только адрес электронной почты. Перейти к Страница регистрации полосы Чтобы настроить новую учетную запись. Вам потребуется проверить свой адрес электронной почты после регистрации.
Клон node.js api
После того, как у вас настройка учетная запись Stripe, следующий шаг — клонировать Demo Node.js API. API, который мы будем использовать, доступен на Hookdeck’s Github Repo Анкет Клонировать это хранилище, выполнив следующую команду:
git clone https://github.com/hookdeck/nodejs-webhook-server-example.git
Это сделает проект доступным в месте в вашей файловой системе, где вы запустили команду.
Перейдите к корню проекта и установите необходимые зависимости, выполнив следующие команды:
cd nodejs-webhook-server-example npm install
После завершения установки вы можете запустить сервер Node.js со следующей командой:
npm start
Это загрузит приложение API и распечатает сообщение на экране, указывающий, что API теперь работает и прослушивает подключения на порту 1337
Анкет
Конечная точка, которая будет использоваться для запросов WebHook, является /stripe-webhooks-endpoint
и можно найти в routes.js
файл, как показано ниже:
router.post("/stripe-webhooks-endpoint", bodyParser.raw({type: 'application/json'}), function(req, res) { console.log(req.body); res.send("Stripe Successfully received Webhook request"); });
Эта конечная точка получает запросы Webhook, печатает тело запроса на консоли и возвращает сообщение.
Получите URL -адрес webhook
Для исходного приложения для отправки запроса WebHook приложение для назначения необходимо зарегистрировать URL Webhook с источником. Большинство поставщиков веб -крючков также требование о том, что эта конечная точка использует Https Протокол по соображениям безопасности. Таким образом, нам нужен общедоступный URL, который использует HTTPS.
К счастью, Hookdeck Cli построен только для этого. С помощью CLI Hookdeck вы можете получать веб -крючки на местном уровне и отлаживать их плавно. Посетите CLI документация Чтобы установить и настроить инструмент в вашей операционной системе.
После завершения процесса настройки, следующим шагом является использование CLI для создания URL -адреса WebHook, который указывает на приложение Running API. Для этого запустите следующую команду:
hookdeck listen 1337
Эта команда запускает интерактивный сеанс, где CLI собирает информацию о конечной точке, которую вы собираетесь создать. Ниже приведены вопросы и ответы, которые вы должны подать на каждый вопрос. Убедитесь, что поразить Введите
ключ после каждого ответа.
- Выберите источник? Ответ: выберите Создайте новый источник
- Каким должен быть ваш новый исходный ярлык? Ответ: введите текст полоса
- На какой путь должен быть направлен веб -крючки (т.е.:/webhooks) ? Ответ: Тип /stripe-webhooks-endpoint
- Что такое метка соединения (то есть: мой API)? Ответ: Тип Моя полоса API
С этой информацией CLI начнет процесс создания URL -адреса, и как только он будет сделан, вы увидите URL -адрес, напечатанный на экране, и CLI, указывающий, что он готов к получению запросов.
Скопируйте URL -адрес webhook, как это потребуется в следующем разделе.
Установите WebHook на полосе
Теперь, когда мы завершили настройку в приложении назначения, пришло время подписаться на веб -крючок на полосе.
На вашей полосе панели панели, перейдите к разработчикам → Webhooks. На странице «Webhooks» нажмите на + Добавить конечную точку
**** Кнопка в верхней правой стороне экрана. Это действие появится в диалоге, похожий на приведенный ниже:
В диалоговом окне добавьте URL, скопированный из CLI, скопированный из CLI в URL конечной точки
поле. Далее нажмите на События для отправки
Выпадающий в сторону и выберите Account.Updated
Событие, которое будет запускаться каждый раз, когда ваша учетная запись Stripe обновляется. Нажмите на Добавить конечную точку
кнопка для завершения этого процесса.
Это создаст соединение между вашей учетной записью Stripe и приложением API, работающим на вашей локальной машине для Account.Updated
мероприятие. После того, как WebHook был успешно добавлен, вы увидите экран, подобный приведенному ниже:
Проверьте запросы на веб -крюк
С настройкой подключения к веб -крючке, пришло время проверить его. Stripe предоставляет способ отправить тестовый веб -крючок, который имитирует мероприятие, на которое вы зарегистрировались. Это очень удобно для целей тестирования и отладки.
В верхнем правом углу экрана WebHook, показанном выше, нажмите на Отправить тест Webhook
кнопка. Это откроет диалог для выбора события, для которого вы хотите отправить тест. Смотрите диалог ниже:
Убедитесь, что вы выбрали Account.Updated
Событие и нажмите на Отправить тест Webhook
кнопка. Это запустит запрос на веб-крюк на ваш URL-адрес Webhook, который будет получен в конечной точке, которую вы указали при создании URL (т.е. /stripe-webhooks-endpoint
).
Наблюдайте за окном терминала, где вы запустили Хукдек Слушай 1337
командование Вы увидите запрос Webhook, напечатанный на терминал, как показано ниже:
Последний элемент в печатной информации — это конечная точка для просмотра подробной информации о только что полученном запросе WebHook. Скопируйте этот URL -адрес и загрузите его в свой браузер, и вы увидите экран с подробностями событий, подобный тому, который ниже.
Этот экран содержит подробную информацию о запросе WebHook, а также о теле запроса, отправленного в полезной нагрузке, если таковые имеются.
Это позволит вам проверить данные запроса и написать код, чтобы ответить на него.
Важные соображения при использовании веб -крючков
Webhooks — это простая настройка связи, и из -за этого можно возникнуть соблазн упростить процесс. Тем не менее, есть несколько очень важных вещей, которые следует учитывать при работе с Webhooks, и некоторые из них объяснены ниже.
- Масштабируемость: Чем больше событий вы подписываете, тем больше запросов вы получаете, и некоторые события являются высокочастотными событиями. Нередко неожиданно свидетельствуют о шипах в трафике при работе с Webhooks. Этот внезапный всплеск запросов Webhook из высокочастотного события может в конечном итоге отключить ваш сервер, если ваша конечная точка будет перегружена. Один из способов решить это — через асинхронная обработка с очереди сообщения , или, используя онлайн -сервис, такой как Hookdeck Анкет
- Отказ запроса: Большинство запросов на веб -крюк следуют Огненная и залажняя Процесс, при котором запрос отправляется без источника, подтверждающего, успешно ли он поступил в пункт назначения. Таким образом, если в вашей конечной точке происходит ошибка, а запрос на веб -крючок не повторно повторно, эти данные могут быть потеряны. Это может иметь некоторые вредные последствия для целостности вашей системы. Вы хотите убедиться, что неисправные запросы были повторно рассмотрены, а данные запроса настойчивы между RESRIES. Некоторые поставщики делают это автоматически, когда получают код состояния ошибки из приложения назначения. В сценарии, когда поставщик не предлагает эту функциональность, вам нужно будет настроить его.
- Безопасность: Как упоминалось ранее, запросы Webhook являются регулярными HTTP -запросами, поэтому вы хотите обратить внимание на аутентификацию запросов, которые отправляются на ваш сервер. Некоторые поставщики, такие как Stripe, имеют ключи API и подписи безопасности, встроенные в заголовки, чтобы вы могли аутентифицировать ваши запросы.
Вывод
Webhooks предоставляют бесшовную систему связи в реальном времени для онлайн-приложений. Приложения могут уведомить и делиться информацией друг с другом о происходящих событиях и формировать цепочку автоматических рабочих процессов, приносящих большую ценность для себя и своих пользователей. В этой статье мы продемонстрировали, как работать с Webhooks, используя Stripe Webhooks в качестве тематического исследования. Большинство поставщиков веб -крючков следуют очень похожим процессу с различиями, появляющимися только в форме запроса. Таким образом, вы можете перенести знания, которые вы получили в этой статье в свою работу с другими поставщиками веб -крюков. Счастливого кодирования!
Оригинал: «https://dev.to/hookdeck/webhooks-tutorial-the-beginner-s-guide-to-working-with-webhooks-56pl»