REST OpenApi
To call and expose REST services using OpenAPI specification as contract.
What’s inside
-
REST OpenApi component, URI syntax:
rest-openapi:specificationUri#operationId
Please refer to the above links for usage and configuration details.
Maven coordinates
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-rest-openapi-starter</artifactId>
</dependency> Spring Boot Auto-Configuration
The starter supports 21 options, which are listed below.
| Name | Description | Default | Type |
|---|---|---|---|
camel.component.rest-openapi.api-context-path | Sets the context-path to use for servicing the OpenAPI specification | String | |
camel.component.rest-openapi.autowired-enabled | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | Boolean |
camel.component.rest-openapi.base-path | API basePath, for example /v2. Default is unset, if set overrides the value present in OpenApi specification. | String | |
camel.component.rest-openapi.binding-package-scan | Package name to use as base (offset) for classpath scanning of POJO classes are located when using binding mode is enabled for JSon or XML. Multiple package names can be separated by comma. | String | |
camel.component.rest-openapi.bridge-error-handler | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. Important: This is only possible if the 3rd party component allows Camel to be alerted if an exception was thrown. Some components handle this internally only, and therefore bridgeErrorHandler is not possible. In other situations we may improve the Camel component to hook into the 3rd party component and make this possible for future releases. 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.rest-openapi.client-request-validation | Whether to enable validation of the client request to check if the incoming request is valid according to the OpenAPI specification | false | Boolean |
camel.component.rest-openapi.client-response-validation | Whether to enable validation of the client request to check if the outgoing response from Camel is valid according to the OpenAPI specification | false | Boolean |
camel.component.rest-openapi.component-name | Name of the Camel component that will perform the requests. The component must be present in Camel registry and it must implement RestProducerFactory service provider interface. If not set CLASSPATH is searched for single component that implements RestProducerFactory SPI. Can be overridden in endpoint configuration. | String | |
camel.component.rest-openapi.consumer-component-name | Name of the Camel component that will service the requests. The component must be present in Camel registry and it must implement RestOpenApiConsumerFactory service provider interface. If not set CLASSPATH is searched for single component that implements RestOpenApiConsumerFactory SPI. Can be overridden in endpoint configuration. | String | |
camel.component.rest-openapi.consumes | What payload type this component capable of consuming. Could be one type, like application/json or multiple types as application/json, application/xml; q=0.5 according to the RFC7231. This equates to the value of Accept HTTP header. If set overrides any value found in the OpenApi specification. Can be overridden in endpoint configuration | String | |
camel.component.rest-openapi.enabled | Whether to enable auto configuration of the rest-openapi component. This is enabled by default. | Boolean | |
camel.component.rest-openapi.host | Scheme hostname and port to direct the HTTP requests to in the form of https://hostname:port. Can be configured at the endpoint, component or in the corresponding REST configuration in the Camel Context. If you give this component a name (e.g. petstore) that REST configuration is consulted first, rest-openapi next, and global configuration last. If set overrides any value found in the OpenApi specification, RestConfiguration. Can be overridden in endpoint configuration. | String | |
camel.component.rest-openapi.lazy-start-producer | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. | false | Boolean |
camel.component.rest-openapi.missing-operation | Whether the consumer should fail,ignore or return a mock response for OpenAPI operations that are not mapped to a corresponding route. | fail | String |
camel.component.rest-openapi.mock-include-pattern | Used for inclusive filtering of mock data from directories. The pattern is using Ant-path style pattern. Multiple patterns can be specified separated by comma. | classpath:camel-mock/** | String |
camel.component.rest-openapi.produces | What payload type this component is producing. For example application/json according to the RFC7231. This equates to the value of Content-Type HTTP header. If set overrides any value present in the OpenApi specification. Can be overridden in endpoint configuration. | String | |
camel.component.rest-openapi.request-validation-enabled | Enable validation of requests against the configured OpenAPI specification | false | Boolean |
camel.component.rest-openapi.rest-openapi-processor-strategy | To use a custom strategy for how to process Rest DSL requests. The option is a org.apache.camel.component.rest.openapi.RestOpenapiProcessorStrategy type. | RestOpenapiProcessorStrategy | |
camel.component.rest-openapi.specification-uri | Path to the OpenApi specification file. The scheme, host base path are taken from this specification, but these can be overridden with properties on the component or endpoint level. If not given the component tries to load openapi.json resource. Note that the host defined on the component and endpoint of this Component should contain the scheme, hostname and optionally the port in the URI syntax (i.e. https://api.example.com:8080). Can be overridden in endpoint configuration. | String | |
camel.component.rest-openapi.ssl-context-parameters | Customize TLS parameters used by the component. If not set defaults to the TLS parameters set in the Camel context. The option is a org.apache.camel.support.jsse.SSLContextParameters type. | SSLContextParameters | |
camel.component.rest-openapi.use-global-ssl-context-parameters | Enable usage of global SSL context parameters. | false | Boolean |