Введение

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

Что это за штука?

По определению «WebHook — это обратный вызов HTTP: HTTP POST, который происходит, когда что-то происходит; простое уведомление о событии через HTTP POST».

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

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

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

«опрос создает в среднем в 66 раз больше нагрузки на сервер, чем веб-перехватчики, — это результаты теста, проведенного zapier.»

Вопросы безопасности

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

  • Разрешить только подключения TLS (HTTPS): TLS гарантирует, что данные, которые передаются через Интернет, полностью зашифрованы с помощью некоторого безопасного алгоритма, что защищает от атаки «человек посередине» или любых третьих лиц. приложение для вечеринок.
  • Использование маркера. Маркер предназначен для проверки подлинности источника. Следовательно, токен может проверить, имеет ли источник доступ для чтения или изменения приложения. Ограничение неизвестного источника поможет предотвратить бесполезные данные, которые автоматически повышают доступность вашего URL.

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

Сценарии использования

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

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

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

по сути, на верхнем уровне мы можем сказать, что можем использовать веб-перехватчики там, где мы работаем с базой данных в реальном времени

Забавные факты

  • firebase: прослушиватель onSnapShot в firebase прослушивает веб-перехватчик
  • Github: Github использует веб-перехватчики для уведомлений

Реализация

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

Давайте погрузимся в вебхуки GitHub для демонстрации. Итак, для начала я создал тестовое репо для этой цели. Итак, теперь вы также можете создать репозиторий. Перейдите в настройки проекта.

Теперь на вкладке настроек в боковой панели навигации есть вкладка веб-перехватчика. теперь с правой стороны есть кнопка добавления веб-перехватчика. Нажмите на нее

Итак, теперь нам нужно настроить сервер, на который мы сможем получать почтовый запрос от Github. Для этого вы можете создать локальный сервер и развернуть его в функциях firebase или на Heroku.

примечание: сервер должен быть развернут, поскольку, если он не развернут, он не будет виден веб-перехватчику GitHub

поэтому, чтобы ускорить процесс, я собираюсь использовать beeceptor.com для создания конечной точки.

поэтому теперь я копирую путь и вставляю его в URL-адрес полезной нагрузки веб-перехватчика GitHub, и, в конце концов, я атакую ​​конечную точку, в моем случае это «/ABC», вы можете добавить ту же конечную точку, которую вы объявили при создании сервера, и вы можете выбрать, какие данные вам нужны при срабатывании веб-перехватчика, на данный момент я выбираю «Отправить мне все» и нажимаю «Добавить веб-перехватчик».

Вуаля, ваш первый вебхук запущен.🎉🎉🎉🎉🎉

теперь просто поставьте звездочку репозиторию, и тогда вы увидите опубликованное сообщение в вашем API в этом формате

поэтому, если вы углубитесь в этот объект json, вы получите всю информацию о репо

Заключение

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