Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Предупреждение
ASP.NET WebHooks устаревший и больше не будет получать обновления или патчи безопасности.
WebHooks — это упрощенный шаблон HTTP, предоставляющий простую модель pub/sub для объединения веб-API и служб SaaS. Когда событие происходит в службе, уведомление отправляется в виде HTTP-запроса POST зарегистрированным подписчикам. Запрос POST содержит сведения о событии, которые позволяют получателю действовать соответствующим образом.
Благодаря простоте веб-перехватчики уже предоставляются большим количеством служб, включая Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Slack, Stripe, Trello и многое другое. Например, веб-перехватчик может указать, что файл изменился в Dropbox, или изменение кода было зафиксировано в GitHub, или платеж был инициирован в PayPal или карточка была создана в Trello. Возможности бесконечны!
Microsoft ASP.NET WebHooks упрощает отправку и получение WebHooks в составе вашего приложения ASP.NET.
На принимающей стороне она предоставляет общую модель для получения и обработки вебхуков от любых поставщиков вебхуков. Он выходит из коробки с поддержкой Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Pusher, Salesforce, Slack, Stripe, Trello, WordPress и Zendesk, но легко добавить поддержку для других.
Отправляющая сторона предоставляет поддержку управления и хранения подписок, а также отправку уведомлений о событиях нужным подписчикам. Это позволяет определить собственный набор событий, на которые подписчики могут подписываться и уведомлять их о том, когда это происходит.
Две части можно использовать вместе или отдельно в зависимости от вашего сценария. Если вам нужно только получать WebHooks от других служб, вы можете использовать только компонент получателя; если вы хотите предоставлять WebHooks для других служб, вы можете делать только это.
Код предназначен для ASP.NET Web API 2 и ASP.NET MVC 5 и доступен как OSS на GitHub.
Обзор WebHooks
ВебHooks — это образец, который подразумевает, что его используют по-разному в зависимости от службы, но основная идея остается неизменной. Веб-хуки можно рассматривать как простую модель pub/sub, где пользователь может подписаться на события, происходящие где-либо еще. Уведомления о событиях распространяются как HTTP-запросы POST, содержащие сведения о самом событии.
Обычно HTTP-запрос POST содержит объект JSON или данные формы HTML, определенные отправителем веб-перехватчика, включая сведения о событии, вызывающего триггер веб-перехватчика. Например, текст запроса WebHook POST из GitHub выглядит следующим образом в результате новой проблемы, открываемой в определенном репозитории:
{
"action": "opened",
"issue": {
"url": "https://api.github.com/repos/octocat/Hello-World/issues/1347",
"number": 1347,
...
},
"repository": {
"id": 1296269,
"full_name": "octocat/Hello-World",
"owner": {
"login": "octocat",
"id": 1
...
},
...
},
"sender": {
"login": "octocat",
"id": 1,
...
}
}
Чтобы убедиться, что WebHook действительно от предполагаемого отправителя, запрос POST защищается одним из способов, а затем проверяется получателем. Например, GitHub WebHooks включает в HTTP заголовок X-Hub-Signature хэш тела запроса, который проверяется реализацией приемника, чтобы вам не нужно было об этом беспокоиться.
Поток веб-хука обычно идет примерно так:
Отправитель веб-хука предоставляет события, на которые клиент может подписаться. События описывают наблюдаемые изменения в системе, например вставленный новый элемент данных, завершенный процесс или что-то другое.
Получатель веб-хука подписывается путем регистрации веб-хука, состоящего из четырех элементов:
URI, где уведомление о событии должно быть отправлено в виде HTTP POST-запроса;
Набор фильтров, описывающих определенные события, для которых должен быть запущен веб-перехватчик;
Секретный ключ, который используется для подписывания HTTP-запроса POST;
Дополнительные данные, которые необходимо включить в HTTP-запрос POST. Это может быть дополнительное поле заголовка HTTP или свойства, включенные в текст ЗАПРОСА HTTP POST.
После того как событие произойдет, будут найдены соответствующие регистрации вебхуков, и запросы HTTP POST отправляются. Как правило, создание HTTP-запросов POST выполняется несколько раз, если по какой-то причине получатель не отвечает, или HTTP-запрос POST приводит к возникновению ошибки.
Конвейер обработки вебхуков
Конвейер обработки Microsoft ASP.NET WebHooks для входящих WebHooks выглядит следующим образом:
Ниже приведены два основных понятия приемников и обработчиков:
Получатели отвечают за обработку определенного типа веб-перехватчика от заданного отправителя и осуществление проверок безопасности, чтобы убедиться, что запрос веб-перехватчика действительно исходит от предполагаемого отправителя.
Обработчики обычно предназначены для выполнения пользователем кода, обрабатывающего конкретный веб-перехватчик.
В следующих узлах эти понятия описаны более подробно.