Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Figyelmeztetés
ASP.NET WebHooks elavult, és a továbbiakban nem kap frissítéseket vagy biztonsági javításokat.
A WebHooks egy egyszerű HTTP-minta, amely egyszerű pub/almodellt biztosít a webes API-k és az SaaS-szolgáltatások összekapcsoláshoz. Ha egy szolgáltatásban esemény történik, a rendszer HTTP POST-kérés formájában küld értesítést a regisztrált előfizetőknek. A POST-kérelem olyan információkat tartalmaz az eseményről, amelyek lehetővé teszik, hogy a fogadó ennek megfelelően járjon el.
Egyszerűségük miatt a WebHookokat már számos szolgáltatás teszi elérhetővé, beleértve a Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Slack, Stripe, Trello stb. A WebHook például azt jelezheti, hogy egy fájl megváltozott a Dropbox-ban, vagy kódmódosítást követtek el a GitHub-ban, vagy fizetést kezdeményeztek a PayPal-on, vagy az Trello-ban új kártyát hoztak létre. A lehetőségek végtelenek!
A Microsoft ASP.NET WebHooks megkönnyíti a WebHookokok küldését és fogadását ASP.NET alkalmazás részeként:
A fogadó oldalon egy általános modellt biztosít a WebHookok fogadásához és feldolgozásához tetszőleges számú WebHook-szolgáltatótól. Az alapértelmezett beállítások szerint támogatást nyújt a Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Pusher, Salesforce, Slack, Stripe, Trello, WordPress és Zendesk programokhoz, de könnyen hozzáadható további támogatás is.
A küldési oldalon támogatást nyújt az előfizetések kezeléséhez és tárolásához, valamint az eseményértesítések megfelelő előfizetőknek való küldéséhez. Ez lehetővé teszi, hogy meghatározza a saját eseménykészletét, amelyre az előfizetők feliratkozhatnak, és értesítést küldhessenek nekik, amikor a dolgok történnek.
A két rész a forgatókönyvtől függően együtt vagy külön is használható. Ha csak más szolgáltatásokból kell webhookokat fogadnia, akkor csak a fogadórészt használhatja; ha csak azt szeretné, hogy mások számára is elérhetővé tegye a WebHookokat, akkor ezt megteheti.
A kód az ASP.NET Web API 2-t és az ASP.NET MVC 5-öt célozza meg, és mint nyílt forráskód érhető el a GitHub-on.
A WebHooks áttekintése
A WebHooks egy minta, amely azt jelenti, hogy szolgáltatásról szolgáltatásra változik, de az alapötlet ugyanaz. A WebHook egy egyszerű közzétételi/előfizetési modell, ahol a felhasználó feliratkozhat máshol zajló események értesítéseire. Az eseményértesítések HTTP POST-kérésekként vannak propagálása, amelyek magukról az eseményről tartalmaznak információkat.
A HTTP POST-kérelem általában a WebHook-feladó által meghatározott JSON-objektumokat vagy HTML-űrlapadatokat tartalmazza, beleértve a WebHook eseményindítóját okozó esemény adatait is. Például egy új probléma megnyitása egy adott tárházban így jelenik meg a WebHook POST kérelem törzsében a GitHub esetében:
{
"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,
...
}
}
Annak érdekében, hogy a WebHook valóban a kívánt feladótól származhasson, a POST kérést valamilyen módon biztonságossá kell tenni, majd a fogadó ellenőrzi. Például GitHub WebHooks tartalmaz egy X-Hub-Signature HTTP-fejlécet a kérelem törzsének kivonatával, amelyet a fogadó implementáció ellenőriz, így nem kell aggódnia.
A WebHook-folyamat általában a következőhöz hasonló:
A WebHook-feladó olyan eseményeket tesz közzé, amelyekre az ügyfél előfizethet. Az események a rendszer megfigyelhető változásait írják le, például egy új adatelem beszúrását, egy folyamat befejezését vagy valami mást.
A WebHook-fogadó egy négy dologból álló WebHook regisztrálásával fizet elő:
Egy URI, ahol az eseményértesítést HTTP POST-kérés formájában kell közzétenni;
Szűrőkészlet, amely leírja azokat az eseményeket, amelyekre a WebHookot aktiválni kell;
A HTTP POST-kérelem aláírásához használt titkos kulcs;
A HTTP POST-kérelemben szerepeltetni kívánt további adatok. Ez lehet például a HTTP POST kérelem törzsében található további HTTP-fejlécmezők vagy tulajdonságok.
Az esemény bekövetkezése után a rendszer megtalálja a megfelelő WebHook-regisztrációkat, és HTTP POST-kérelmeket küld el. A HTTP POST-kérések generálása általában többször is megismétlhető, ha valamilyen okból a címzett nem válaszol, vagy ha a HTTP POST-kérés hibaválaszt eredményez.
WebHooks feldolgozási folyamat
A Microsoft ASP.NET WebHooks feldolgozási folyamat a bejövő WebHookokhoz a következőképpen néz ki:
A két fő fogalom a fogadók és a kezelők:
A fogadók felelősek a WebHook adott feladótól származó ízének kezeléséért és a biztonsági ellenőrzések végrehajtásáért annak biztosítása érdekében, hogy a WebHook-kérés valóban a kívánt feladótól származik.
A kezelők általában az adott WebHook feldolgozásának felhasználói kódját futtatják.
A következő csomópontokban ezeket a fogalmakat részletesebben ismertetjük.