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();
}
}
}