Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Waarschuwing
ASP.NET WebHooks is afgeschaft en ontvangt geen updates of beveiligingscorrecties meer.
WebHooks is een lichtgewicht HTTP-patroon dat een eenvoudig pub/submodel biedt voor het verbinden van web-API's en SaaS-services. Wanneer een gebeurtenis in een service plaatsvindt, wordt een melding verzonden in de vorm van een HTTP POST-aanvraag naar geregistreerde abonnees. De POST-aanvraag bevat informatie over de gebeurtenis waardoor de ontvanger dienovereenkomstig kan handelen.
Vanwege hun eenvoud worden WebHooks al weergegeven door een groot aantal services, waaronder Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Slack, Stripe, Trello en nog veel meer. Een WebHook kan bijvoorbeeld aangeven dat een bestand is gewijzigd in Dropbox, of een codewijziging is doorgevoerd in GitHub of een betaling is geïnitieerd in PayPal of er is een kaart gemaakt in Trello. De mogelijkheden zijn eindeloos!
Met Microsoft ASP.NET WebHooks kunt u webhooks eenvoudiger verzenden en ontvangen als onderdeel van uw ASP.NET-toepassing:
Aan de ontvangstzijde biedt het een gemeenschappelijk model voor het ontvangen en verwerken van WebHooks van een willekeurig aantal WebHook-providers. Het komt uit de doos met ondersteuning voor Dropbox, GitHub, Bitbucket, MailChimp, PayPal, Pusher, Salesforce, Slack, Stripe, Trello,WordPress en Zendesk, maar het is eenvoudig om ondersteuning toe te voegen voor meer.
Aan de verzendzijde biedt het ondersteuning voor het beheren en opslaan van abonnementen en voor het verzenden van gebeurtenismeldingen naar de juiste set abonnees. Hiermee kunt u uw eigen set gebeurtenissen definiëren waarop abonnees zich kunnen abonneren en hen op de hoogte stellen wanneer er iets gebeurt.
De twee onderdelen kunnen samen of uit elkaar worden gebruikt, afhankelijk van uw scenario. Als u alleen WebHooks van andere services hoeft te ontvangen, kunt u alleen het ontvangeronderdeel gebruiken; Als u alleen WebHooks beschikbaar wilt maken zodat anderen deze kunnen gebruiken, kunt u dat doen.
De code is gericht op ASP.NET Web-API 2 en ASP.NET MVC 5 en is beschikbaar als OSS op GitHub.
Overzicht van WebHooks
WebHooks is een patroon dat betekent dat het verschilt hoe het wordt gebruikt van service tot service, maar het basisidee is hetzelfde. U kunt WebHooks beschouwen als een eenvoudig pub-/submodel waarin een gebruiker zich kan abonneren op gebeurtenissen die ergens anders plaatsvinden. De gebeurtenismeldingen worden doorgegeven als HTTP POST-aanvragen met informatie over de gebeurtenis zelf.
Normaal gesproken bevat de HTTP POST-aanvraag een JSON-object of HTML-formuliergegevens die worden bepaald door de afzender van de WebHook, inclusief informatie over de gebeurtenis die ervoor zorgt dat de WebHook wordt geactiveerd. Een WebHook POST-verzoekinhoud van GitHub ziet er bijvoorbeeld zo uit wanneer er een nieuw probleem wordt geopend in een bepaalde opslagplaats:
{
"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,
...
}
}
Om ervoor te zorgen dat de WebHook inderdaad afkomstig is van de beoogde afzender, wordt de POST-aanvraag op een of andere manier beveiligd en vervolgens geverifieerd door de ontvanger. GitHub WebHooks bevat bijvoorbeeld een X-Hub-Signature HTTP-header met een hash van de aanvraagbody die wordt gecontroleerd door de implementatie van de ontvanger, zodat u zich er geen zorgen over hoeft te maken.
De WebHook-stroom gaat over het algemeen ongeveer als volgt:
De afzender van de WebHook toont gebeurtenissen waarop een client zich kan abonneren. De gebeurtenissen beschrijven waarneembare wijzigingen in het systeem, bijvoorbeeld dat een nieuw gegevensitem is ingevoegd, dat een proces is voltooid of iets anders.
De WebHook-ontvanger abonneert zich door een WebHook te registreren die bestaat uit vier dingen:
Een URI voor waar de gebeurtenismelding moet worden geplaatst in de vorm van een HTTP POST-aanvraag;
Een set filters die de specifieke gebeurtenissen beschrijven waarvoor de WebHook moet worden geactiveerd;
Een geheime sleutel die wordt gebruikt om de HTTP POST-aanvraag te ondertekenen;
Aanvullende gegevens die moeten worden opgenomen in de HTTP POST-aanvraag. Dit kunnen bijvoorbeeld extra HTTP-headervelden of -eigenschappen zijn die zijn opgenomen in de hoofdtekst van de HTTP POST-aanvraag.
Zodra er een gebeurtenis plaatsvindt, worden de overeenkomende WebHook-registraties gevonden en WORDEN HTTP POST-aanvragen ingediend. Normaal gesproken wordt het genereren van de HTTP POST-aanvragen meerdere keren opnieuw geprobeerd als de ontvanger om een of andere reden niet reageert of als de HTTP POST-aanvraag resulteert in een foutbericht.
WebHooks-verwerkingspijplijn
De Microsoft ASP.NET WebHooks-verwerkingspijplijn voor binnenkomende WebHooks ziet er als volgt uit:
De twee belangrijkste concepten hier zijn Ontvangers en Handlers:
Ontvangers zijn verantwoordelijk voor het afhandelen van de specifieke smaak van WebHook van een bepaalde afzender en voor het afdwingen van beveiligingscontroles om ervoor te zorgen dat de WebHook-aanvraag inderdaad afkomstig is van de beoogde afzender.
Handlers zijn meestal waar gebruikerscode wordt uitgevoerd voor het verwerken van de specifieke WebHook.
In de volgende knooppunten worden deze concepten in meer details beschreven.