Skip to content

WebHooks

Tore Nestenius edited this page Oct 25, 2024 · 13 revisions

Webhooks

Overview

The tool provides multiple webhook endpoints designed to accept incoming requests, process them, and optionally send callback responses. It also supports various validation mechanisms, such as Cloud events and Event Grid schema validation.

image

Purpose

The primary purpose of the webhook service is to receive HTTP requests from external systems, log the requests, and optionally send back validation responses. The service can simulate errors to facilitate testing scenarios, making it ideal for validating integration workflows with external systems.

Internals

The service offers four main webhook endpoints:

  • /Hook1
  • /Hook2
  • /Hook3
  • /Hook4

All of these endpoints share the following characteristics:

  • Accept HTTP GET, POST, PUT, DELETE and OPTIONS requests.
  • Log the incoming request details, including headers, body, and metadata.
  • Optionally send a callback request back to the caller for validation purposes.
  • Support for Cloud events and Event Grid schema validation.

Validation requests

Some services perform a validation step before sending data to our webhook to confirm that we own and control the webhook destination. During this process, our service responds to the initial validation request by sending a callback request back to the originating service, confirming the webhook. This confirmation process is logged, indicating whether the validation was successful, ensuring that the service correctly registers our webhook and continues sending data as expected.

image

Sample test requests

In the \Features\WebHooks\TestRequests folder, you can find various test requests you can run against this service.

Failure simulations

Each webhook endpoint can be configured to simulate a failure response. When this feature is enabled, the webhook will respond with an HTTP 500 Internal Server Error on every request.

image

WebHooks overview page

This tool provides a real-time visual display of events received by the four webhook endpoints. This page uses SignalR for real-time data updates, ensuring that as new events are received, they are immediately displayed in their respective sections on the page.

The table is structured to represent each of the four webhooks separately:

  • Webhook 1
  • Webhook 2
  • Webhook 3
  • Webhook 4

image

Each webhook is represented by its own section on the page. Incoming events are categorized and displayed with their content, and the subject of each event is color-coded to provide visual differentiation.

image

Clone this wiki locally