Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device.
Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
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å
Eventuell API-key eller lignende som legges på eventen som header. Husk å angi header-key.
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();
}
}
}