Webhook

Since Camel 3.0

Only consumer is supported

The Webhook meta component allows other Camel components to configure webhooks on a remote webhook provider and listening for them.

The following components currently provide webhook endpoints:
  • Telegram

Maven users can add the following dependency to their pom.xml for this component:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-webhook</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

Typically other components that support webhook will bring this dependency transitively.

URI Format

webhook:endpoint[?options]

Webhook Options

The Webhook component supports 8 options, which are listed below.

Name Description Default Type

bridgeErrorHandler (consumer)

Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.

false

boolean

webhookAutoRegister (consumer)

Automatically register the webhook at startup and unregister it on shutdown.

true

boolean

webhookBasePath (consumer)

The first (base) path element where the webhook will be exposed. It’s a good practice to set it to a random string, so that it cannot be guessed by unauthorized parties.

String

webhookComponentName (consumer)

The Camel Rest component to use for the REST transport, such as netty-http.

String

webhookExternalUrl (consumer)

The URL of the current service as seen by the webhook provider

String

webhookPath (consumer)

The path where the webhook endpoint will be exposed (relative to basePath, if any)

String

basicPropertyBinding (advanced)

Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities

false

boolean

configuration (advanced)

Set the default configuration for the webhook meta-component.

WebhookConfiguration

The Webhook endpoint is configured using URI syntax:

webhook:endpointUri

with the following path and query parameters:

Path Parameters (1 parameters):

Name Description Default Type

endpointUri

Required The delegate uri. Must belong to a component that supports webhooks.

String

Query Parameters (10 parameters):

Name Description Default Type

bridgeErrorHandler (consumer)

Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.

false

boolean

webhookAutoRegister (consumer)

Automatically register the webhook at startup and unregister it on shutdown.

true

boolean

webhookBasePath (consumer)

The first (base) path element where the webhook will be exposed. It’s a good practice to set it to a random string, so that it cannot be guessed by unauthorized parties.

String

webhookComponentName (consumer)

The Camel Rest component to use for the REST transport, such as netty-http.

String

webhookExternalUrl (consumer)

The URL of the current service as seen by the webhook provider

String

webhookPath (consumer)

The path where the webhook endpoint will be exposed (relative to basePath, if any)

String

exceptionHandler (consumer)

To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored.

ExceptionHandler

exchangePattern (consumer)

Sets the exchange pattern when the consumer creates an exchange. The value can be one of: InOnly, InOut, InOptionalOut

ExchangePattern

basicPropertyBinding (advanced)

Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities

false

boolean

synchronous (advanced)

Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).

false

boolean

You can append query options to the URI in the following format, ?options=value&option2=value&…​

Examples

Examples of webhook component are provided in the documentation of the delegate components that support it.

Spring Boot Auto-Configuration

When using webhook with Spring Boot make sure to use the following Maven dependency to have support for auto configuration:

<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-webhook-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

The component supports 9 options, which are listed below.

Name Description Default Type

camel.component.webhook.basic-property-binding

Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities

false

Boolean

camel.component.webhook.bridge-error-handler

Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.

false

Boolean

camel.component.webhook.configuration

Set the default configuration for the webhook meta-component. The option is a org.apache.camel.component.webhook.WebhookConfiguration type.

String

camel.component.webhook.enabled

Whether to enable auto configuration of the webhook component. This is enabled by default.

Boolean

camel.component.webhook.webhook-auto-register

Automatically register the webhook at startup and unregister it on shutdown.

true

Boolean

camel.component.webhook.webhook-base-path

The first (base) path element where the webhook will be exposed. It’s a good practice to set it to a random string, so that it cannot be guessed by unauthorized parties.

String

camel.component.webhook.webhook-component-name

The Camel Rest component to use for the REST transport, such as netty-http.

String

camel.component.webhook.webhook-external-url

The URL of the current service as seen by the webhook provider

String

camel.component.webhook.webhook-path

The path where the webhook endpoint will be exposed (relative to basePath, if any)

String