Oppsett og registrering av abonnement

Oppsett av abonnement gjøres via henvendelse til Service Desk. Følgende må være en del av henvendelsen;

  • Søknadssystemetsnavn (typisk identifikatoren som brukes i xml-noden metadata/fraSluttbrukersystem )

  • URL til WebhookAPIet som det ønskes å motta hendelser på

Krav til Webhook API

WebhookAPI-et må kunne ta i mot en POST-request med støtte for Cloud Event Schema v1.0. I tillegg til dette må API-et støtte validering av abonnementet. For cloud events gjøres dette ved et OPTIONS kall til endepunktet. Se spec for detaljer https://github.com/cloudevents/spec/blob/v1.0/http-webhook.md#4-abuse-protection

Eksempel på en controller i Dotnet som håndterer Cloud Events

using Azure.Messaging; using Microsoft.AspNetCore.Mvc; using System.Text; namespace CloudEventController { [ApiController] [Route("api/[controller]")] public class CloudEventController(ICloudEventService cloudEventService) : ControllerBase { [HttpPost] public async Task<IActionResult> PostCloudEvent(CloudEvent cloudEvent) { await cloudEventService.HandleEventAsync(cloudEvent); return Ok(); } [HttpOptions] public IActionResult Validate() { using var reader = new StreamReader(Request.Body, Encoding.UTF8); var webhookRequestOrigin = HttpContext.Request.Headers["WebHook-Request-Origin"].FirstOrDefault(); var webhookRequestCallback = HttpContext.Request.Headers["WebHook-Request-Callback"]; var webhookRequestRate = HttpContext.Request.Headers["WebHook-Request-Rate"]; HttpContext.Response.Headers.Append("WebHook-Allowed-Rate", "*"); HttpContext.Response.Headers.Append("WebHook-Allowed-Origin", webhookRequestOrigin); return Ok(); } } }

Ressurser:

Mer info om Microsoft sine krav til Webhook-API: WebHook event delivery - Azure Event Grid

Microsoft CloudEvents docs: https://learn.microsoft.com/en-us/azure/event-grid/cloudevents-schema

Cloud Events Abuse Protection docs: https://github.com/cloudevents/spec/blob/v1.0/http-webhook.md#4-abuse-protection