Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Výstraha
ASP.NET webhooky jsou zastaralé a už nebudou dostávat aktualizace ani opravy zabezpečení.
WebHooks je jednoduchý vzor HTTP, který poskytuje jednoduchý model pub/sub pro propojení webových rozhraní API a služeb SaaS. Když ve službě dojde k události, odešle se oznámení ve formě požadavku HTTP POST registrovaným odběratelům. Požadavek POST obsahuje informace o události, která umožňuje příjemci jednat odpovídajícím způsobem.
Vzhledem k jednoduchosti jsou webhooky již vystaveny velkým počtem služeb, včetně Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Slack, Stripe, Trello a mnoho dalších. WebHook může například znamenat, že se soubor změnil v Dropbox, nebo byla potvrzena změna kódu v GitHub nebo byla zahájena platba v PayPal nebo byla vytvořena karta v Trello. Možnosti jsou nekonečné!
Microsoft ASP.NET WebHooks usnadňuje odesílání a přijímání webhooků jako součást vaší aplikace ASP.NET:
Na straně příjmu poskytuje běžný model pro příjem a zpracování webhooků od libovolného počtu poskytovatelů WebHooku. Je k dispozici podpora pro Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Pusher, Salesforce, Slack, Stripe, Trello,WordPress a Zendesk ale další podporu můžete snadno přidat.
Na straně odesílání poskytuje podporu pro správu a ukládání odběrů a také pro odesílání oznámení událostí do správné sady odběratelů. Díky tomu můžete definovat vlastní sadu událostí, ke kterým se předplatitelé můžou přihlásit, a informovat je, když se něco stane.
V závislosti na vašem scénáři je možné tyto dvě části použít společně nebo od sebe. Pokud potřebujete pouze přijímat webhooky z jiných služeb, můžete použít pouze část příjemce; Pokud chcete zpřístupnit webhooky jenom pro ostatní, aby je mohli využívat, můžete to udělat.
Kód cílí na Rozhraní API pro ASP.NET Web 2 a ASP.NET MVC 5 a je k dispozici jako OSS na GitHub.
Přehled webhooků
WebHooks je vzor, který znamená, že se liší tím, jak se používá od služby po službu, ale základní myšlenka je stejná. WebHooky si můžete představit jako jednoduchý model pub/sub, kde se uživatel může přihlásit k odběru událostí, ke které dochází jinde. Oznámení událostí se šíří jako požadavky HTTP POST obsahující informace o samotné události.
Požadavek HTTP POST obvykle obsahuje objekt JSON nebo data formuláře HTML určená odesílatelem WebHooku, včetně informací o události, která způsobuje aktivaci webhooku. Například obsah požadavku POST webhooku z GitHub vypadá takto jako výsledek otevření nového problému v konkrétním úložišti:
{
"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,
...
}
}
Aby bylo zajištěno, že webhook skutečně pochází od zamýšleného odesílatele, požadavek POST je zabezpečen nějakým způsobem a pak ověřen příjemcem. Například GitHub WebHooks obsahuje hlavičku HTTP X-Hub-Signature s hash hodnotou těla požadavku, která je ověřována implementací na straně příjemce, takže se o to nemusíte starat.
Tok WebHook obecně vypadá přibližně takto:
Odesílatel WebHooku zveřejňuje události, ke kterým se klient může přihlásit. Události popisují pozorovatelné změny systému, například že byla vložena nová datová položka, že proces byl dokončen nebo něco jiného.
Příjemce webhooku se přihlásí k odběru tím, že zaregistruje webhook skládající se ze čtyř částí:
Identifikátor URI pro místo, kde má být oznámení události publikováno ve formě požadavku HTTP POST;
Sada filtrů popisujících konkrétní události, pro které se má WebHook spustit;
Tajný klíč, který slouží k podepsání požadavku HTTP POST;
Další data, která se mají zahrnout do požadavku HTTP POST. Může to být například další pole hlaviček HTTP nebo vlastnosti zahrnuté v textu požadavku HTTP POST.
Jakmile dojde k události, jsou nalezeny odpovídající registrace webhooku a je odeslán požadavek HTTP POST. Generování požadavků HTTP POST se obvykle několikrát opakuje, pokud z nějakého důvodu příjemce nereaguje nebo výsledkem požadavku HTTP POST je chybová odpověď.
Kanál zpracování webhooků
Kanál zpracování příchozích WebHooks v Microsoft ASP.NET vypadá takto:
Klíčové koncepty zde jsou: Přijímače a zpracovatelé.
Příjemci zodpovídají za zpracování konkrétního typu webhooku od daného odesílatele a za vynucení bezpečnostních kontrol, které zajistí, že požadavek WebHook skutečně pochází od zamýšleného odesílatele.
Obslužné rutiny jsou obvykle místem, kde uživatelský kód spouští zpracování konkrétního WebHooku.
V následujících uzlech jsou tyto koncepty popsány podrobněji.