Package org.apache.camel.model.rest
Class RestConfigurationDefinition
java.lang.Object
org.apache.camel.model.rest.RestConfigurationDefinition
To configure rest
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionapiComponent
(String componentId) To use a specific Camel rest API componentapiContextPath
(String contextPath) Sets a leading context-path the REST services will be using.apiContextRouteId
(String apiContextRouteId) Sets the route id to use for the route that services the REST API.To define a specific host to use for API documentation instead of using a generated API hostname that is relative to the REST service host.apiProperty
(String key, String value) For configuring an api property, such as api.title, or api.version.apiVendorExtension
(boolean vendorExtension) Whether vendor extension is enabled in the Rest APIs.apiVendorExtension
(String vendorExtension) Whether vendor extension is enabled in the Rest APIs.org.apache.camel.spi.RestConfiguration
asRestConfiguration
(org.apache.camel.CamelContext context, org.apache.camel.spi.RestConfiguration target) Configured an instance of aRestConfiguration
instance based on the definitionbindingMode
(String bindingMode) To specify the binding modebindingMode
(RestBindingMode bindingMode) To specify the binding modeclientRequestValidation
(boolean clientRequestValidation) Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error.clientRequestValidation
(String clientRequestValidation) Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error.To use a specific Camel rest component (consumer)componentProperty
(String key, String value) For additional configuration options on component levelconsumerProperty
(String key, String value) For additional configuration options on consumer levelcontextPath
(String contextPath) Sets a leading context-path the REST services will be using.corsAllowCredentials
(boolean corsAllowCredentials) Shortcut for setting theAccess-Control-Allow-Credentials
header.corsHeaderProperty
(String key, String value) For configuring CORS headersdataFormatProperty
(String key, String value) For additional configuration options on data format levelenableCORS
(boolean enableCORS) To specify whether to enable CORS which means Camel will automatic include CORS in the HTTP headers in the response.enableCORS
(String enableCORS) To specify whether to enable CORS which means Camel will automatic include CORS in the HTTP headers in the response.endpointProperty
(String key, String value) For additional configuration options on endpoint levelgetHost()
getPort()
To define the host to use, such as 0.0.0.0 or localhosthostNameResolver
(RestHostNameResolver hostNameResolver) To specify the hostname resolverinlineRoutes
(boolean inlineRoutes) Inline routes in rest-dsl which are linked using direct endpoints.inlineRoutes
(String inlineRoutes) Inline routes in rest-dsl which are linked using direct endpoints.jsonDataFormat
(String name) To use a specific json data formatport
(int port) To specify the port number to use for the REST serviceTo specify the port number to use for the REST serviceproducerApiDoc
(String apiDoc) Sets the location of the api document the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document.producerComponent
(String componentId) To use a specific Camel rest component (producer)To use a specific scheme such as http/httpsvoid
setApiComponent
(String apiComponent) The name of the Camel component to use as the REST API.void
setApiContextPath
(String contextPath) Sets a leading API context-path the REST API services will be using.void
setApiContextRouteId
(String apiContextRouteId) Sets the route id to use for the route that services the REST API.void
setApiHost
(String apiHost) To use a specific hostname for the API documentation (such as swagger or openapi)void
setApiProperties
(List<RestPropertyDefinition> apiProperties) Allows to configure as many additional properties for the api documentation.void
setApiVendorExtension
(String apiVendorExtension) Whether vendor extension is enabled in the Rest APIs.void
setBindingMode
(RestBindingMode bindingMode) Sets the binding mode to use.void
setClientRequestValidation
(String clientRequestValidation) Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error.void
setComponent
(String component) The Camel Rest component to use for the REST transport (consumer), such as netty-http, jetty, servlet, undertow.void
setComponentProperties
(List<RestPropertyDefinition> componentProperties) Allows to configure as many additional properties for the rest component in use.void
setConsumerProperties
(List<RestPropertyDefinition> consumerProperties) Allows to configure as many additional properties for the rest consumer in use.void
setContextPath
(String contextPath) Sets a leading context-path the REST services will be using.void
setCorsHeaders
(List<RestPropertyDefinition> corsHeaders) Allows to configure custom CORS headers.void
setDataFormatProperties
(List<RestPropertyDefinition> dataFormatProperties) Allows to configure as many additional properties for the data formats in use.void
setEnableCORS
(String enableCORS) Whether to enable CORS headers in the HTTP response.void
setEndpointProperties
(List<RestPropertyDefinition> endpointProperties) Allows to configure as many additional properties for the rest endpoint in use.void
The hostname to use for exposing the REST service.void
setHostNameResolver
(RestHostNameResolver hostNameResolver) If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be using.void
setInlineRoutes
(String inlineRoutes) Inline routes in rest-dsl which are linked using direct endpoints.void
setJsonDataFormat
(String jsonDataFormat) Name of specific json data format to use.void
The port number to use for exposing the REST service.void
setProducerApiDoc
(String producerApiDoc) Sets the location of the api document the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document.void
setProducerComponent
(String producerComponent) Sets the name of the Camel component to use as the REST producervoid
The scheme to use for exposing the REST service.void
setSkipBindingOnErrorCode
(String skipBindingOnErrorCode) Whether to skip binding on output if there is a custom HTTP error code header.void
setUseXForwardHeaders
(String useXForwardHeaders) Whether to use X-Forward headers for Host and related setting.void
setXmlDataFormat
(String xmlDataFormat) Name of specific XML data format to use.skipBindingOnErrorCode
(boolean skipBindingOnErrorCode) To specify whether to skip binding output if there is a custom HTTP error codeskipBindingOnErrorCode
(String skipBindingOnErrorCode) To specify whether to skip binding output if there is a custom HTTP error codeuseXForwardHeaders
(boolean useXForwardHeaders) To specify whether to use X-Forward headers for Host and related settinguseXForwardHeaders
(String useXForwardHeaders) To specify whether to use X-Forward headers for Host and related settingxmlDataFormat
(String name) To use a specific XML data format
-
Constructor Details
-
RestConfigurationDefinition
public RestConfigurationDefinition()
-
-
Method Details
-
getComponent
-
setComponent
The Camel Rest component to use for the REST transport (consumer), such as netty-http, jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used. -
getApiComponent
-
setApiComponent
The name of the Camel component to use as the REST API. If no API Component has been explicit configured, then Camel will lookup if there is a Camel component responsible for servicing and generating the REST API documentation, or if a org.apache.camel.spi.RestApiProcessorFactory is registered in the registry. If either one is found, then that is being used. -
getProducerComponent
-
setProducerComponent
Sets the name of the Camel component to use as the REST producer -
getScheme
-
setScheme
The scheme to use for exposing the REST service. Usually http or https is supported. The default value is http -
getHost
-
setHost
The hostname to use for exposing the REST service. -
getApiHost
-
setApiHost
To use a specific hostname for the API documentation (such as swagger or openapi) This can be used to override the generated host with this configured hostname -
getPort
-
setPort
The port number to use for exposing the REST service. Notice if you use servlet component then the port number configured here does not apply, as the port number in use is the actual port number the servlet component is using. eg if using Apache Tomcat its the tomcat http port, if using Apache Karaf its the HTTP service in Karaf that uses port 8181 by default etc. Though in those situations setting the port number here, allows tooling and JMX to know the port number, so its recommended to set the port number to the number that the servlet engine uses. -
getProducerApiDoc
-
setProducerApiDoc
Sets the location of the api document the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document. The location of the api document is loaded from classpath by default, but you can use file: or http: to refer to resources to load from file or http url. -
getContextPath
-
setContextPath
Sets a leading context-path the REST services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path. Or for components such as camel-jetty or camel-netty-http that includes a HTTP server. -
getApiContextPath
-
setApiContextPath
Sets a leading API context-path the REST API services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path.- Parameters:
contextPath
- the API context path
-
getApiContextRouteId
-
setApiContextRouteId
Sets the route id to use for the route that services the REST API. The route will by default use an auto assigned route id.- Parameters:
apiContextRouteId
- the route id
-
getApiVendorExtension
-
setApiVendorExtension
Whether vendor extension is enabled in the Rest APIs. If enabled then Camel will include additional information as vendor extension (eg keys starting with x-) such as route ids, class names etc. Not all 3rd party API gateways and tools supports vendor-extensions when importing your API docs. -
getHostNameResolver
-
setHostNameResolver
If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be using. -
getBindingMode
-
setBindingMode
Sets the binding mode to use. The default value is off -
getSkipBindingOnErrorCode
-
setSkipBindingOnErrorCode
Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do. -
getClientRequestValidation
-
setClientRequestValidation
Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error. -
getEnableCORS
-
setEnableCORS
Whether to enable CORS headers in the HTTP response. The default value is false. -
getInlineRoutes
-
setInlineRoutes
Inline routes in rest-dsl which are linked using direct endpoints. By default, each service in Rest DSL is an individual route, meaning that you would have at least two routes per service (rest-dsl, and the route linked from rest-dsl). Enabling this allows Camel to optimize and inline this as a single route, however this requires to use direct endpoints, which must be unique per service. This option is default false. -
getJsonDataFormat
-
setJsonDataFormat
Name of specific json data format to use. By default jackson will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance. -
getXmlDataFormat
-
setXmlDataFormat
Name of specific XML data format to use. By default jaxb will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance. -
getComponentProperties
-
setComponentProperties
Allows to configure as many additional properties for the rest component in use. -
getEndpointProperties
-
setEndpointProperties
Allows to configure as many additional properties for the rest endpoint in use. -
getConsumerProperties
-
setConsumerProperties
Allows to configure as many additional properties for the rest consumer in use. -
getDataFormatProperties
-
setDataFormatProperties
Allows to configure as many additional properties for the data formats in use. For example set property prettyPrint to true to have json outputted in pretty mode. The properties can be prefixed to denote the option is only for either JSON or XML and for either the IN or the OUT. The prefixes are:- json.in.
- json.out.
- xml.in.
- xml.out.
-
getApiProperties
-
setApiProperties
Allows to configure as many additional properties for the api documentation. For example set property api.title to my cool stuff -
getCorsHeaders
-
setCorsHeaders
Allows to configure custom CORS headers. -
getUseXForwardHeaders
-
setUseXForwardHeaders
Whether to use X-Forward headers for Host and related setting. The default value is true. -
component
To use a specific Camel rest component (consumer) -
apiComponent
To use a specific Camel rest API component -
producerComponent
To use a specific Camel rest component (producer) -
scheme
To use a specific scheme such as http/https -
host
To define the host to use, such as 0.0.0.0 or localhost -
apiHost
To define a specific host to use for API documentation instead of using a generated API hostname that is relative to the REST service host. -
port
To specify the port number to use for the REST service -
port
To specify the port number to use for the REST service -
producerApiDoc
Sets the location of the api document the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document. The location of the api document is loaded from classpath by default, but you can use file: or http: to refer to resources to load from file or http url. -
apiContextPath
Sets a leading context-path the REST services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path. Or for components such as camel-jetty or camel-netty-http that includes a HTTP server. -
apiContextRouteId
Sets the route id to use for the route that services the REST API. The route will by default use an auto assigned route id. -
apiVendorExtension
Whether vendor extension is enabled in the Rest APIs. If enabled then Camel will include additional information as vendor extension (eg keys starting with x-) such as route ids, class names etc. Some API tooling may not support vendor extensions and this option can then be turned off. -
apiVendorExtension
Whether vendor extension is enabled in the Rest APIs. If enabled then Camel will include additional information as vendor extension (eg keys starting with x-) such as route ids, class names etc. Some API tooling may not support vendor extensions and this option can then be turned off. -
contextPath
Sets a leading context-path the REST services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path. -
hostNameResolver
To specify the hostname resolver -
bindingMode
To specify the binding mode -
bindingMode
To specify the binding mode -
skipBindingOnErrorCode
To specify whether to skip binding output if there is a custom HTTP error code -
skipBindingOnErrorCode
To specify whether to skip binding output if there is a custom HTTP error code -
clientRequestValidation
Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error. -
clientRequestValidation
Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error. -
enableCORS
To specify whether to enable CORS which means Camel will automatic include CORS in the HTTP headers in the response. -
enableCORS
To specify whether to enable CORS which means Camel will automatic include CORS in the HTTP headers in the response. -
inlineRoutes
Inline routes in rest-dsl which are linked using direct endpoints. By default, each service in Rest DSL is an individual route, meaning that you would have at least two routes per service (rest-dsl, and the route linked from rest-dsl). Enabling this allows Camel to optimize and inline this as a single route, however this requires to use direct endpoints, which must be unique per service. This option is default false. -
inlineRoutes
Inline routes in rest-dsl which are linked using direct endpoints. By default, each service in Rest DSL is an individual route, meaning that you would have at least two routes per service (rest-dsl, and the route linked from rest-dsl). Enabling this allows Camel to optimize and inline this as a single route, however this requires to use direct endpoints, which must be unique per service. This option is default false. -
jsonDataFormat
To use a specific json data format Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.- Parameters:
name
- name of the data format toresolve
-
xmlDataFormat
To use a specific XML data format Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.- Parameters:
name
- name of the data format toresolve
-
componentProperty
For additional configuration options on component level The value can use # to refer to a bean to lookup in the registry. -
endpointProperty
For additional configuration options on endpoint level The value can use # to refer to a bean to lookup in the registry. -
consumerProperty
For additional configuration options on consumer level The value can use # to refer to a bean to lookup in the registry. -
dataFormatProperty
For additional configuration options on data format level The value can use # to refer to a bean to lookup in the registry. -
apiProperty
For configuring an api property, such as api.title, or api.version. -
corsHeaderProperty
For configuring CORS headers -
corsAllowCredentials
Shortcut for setting theAccess-Control-Allow-Credentials
header. -
useXForwardHeaders
To specify whether to use X-Forward headers for Host and related setting -
useXForwardHeaders
To specify whether to use X-Forward headers for Host and related setting -
asRestConfiguration
public org.apache.camel.spi.RestConfiguration asRestConfiguration(org.apache.camel.CamelContext context, org.apache.camel.spi.RestConfiguration target) throws Exception Configured an instance of aRestConfiguration
instance based on the definition- Parameters:
context
- the camel contexttarget
- theRestConfiguration
target- Returns:
- the configuration
- Throws:
Exception
- is thrown if error creating the configuration
-