Package org.apache.camel.model.rest
Class RestDefinition
- java.lang.Object
-
- org.apache.camel.model.OptionalIdentifiedDefinition<RestDefinition>
-
- org.apache.camel.model.rest.RestDefinition
-
- All Implemented Interfaces:
org.apache.camel.CamelContextAware,org.apache.camel.LineNumberAware,org.apache.camel.NamedNode,org.apache.camel.spi.HasId,org.apache.camel.spi.IdAware
@Metadata(label="rest") public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
Defines a rest service using the rest-dsl
-
-
Constructor Summary
Constructors Constructor Description RestDefinition()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description RestDefinitionapiDocs(Boolean apiDocs)Include or exclude the current Rest Definition in API documentation.static RouteDefinitionasRouteApiDefinition(org.apache.camel.CamelContext camelContext, org.apache.camel.spi.RestConfiguration configuration)Transforms the rest api configuration into aRouteDefinitionwhich Camel routing engine uses to service the rest api docs.List<RouteDefinition>asRouteDefinition(org.apache.camel.CamelContext camelContext)Transforms this REST definition into a list ofRouteDefinitionwhich Camel routing engine can add and run.protected StringasTypeName(Class<?> classType)RestDefinitionbindingMode(String mode)RestDefinitionbindingMode(RestBindingMode mode)StringbuildFromUri(VerbDefinition verb)Build the from endpoint uri for the verbRestDefinitionclientRequestValidation(boolean clientRequestValidation)RestDefinitionconsumes(String mediaType)RestDefinitiondelete()RestDefinitiondelete(String uri)RestDefinitiondeprecated()RestDefinitiondescription(String text)Sets the description of this nodeRestDefinitiondescription(String id, String text, String lang)Sets the description of this nodeRestDefinitionenableCORS(boolean enableCORS)RestDefinitionget()RestDefinitionget(String uri)StringgetApiDocs()StringgetBindingMode()StringgetClientRequestValidation()StringgetConsumes()StringgetEnableCORS()StringgetLabel()StringgetPath()StringgetProduces()RestSecuritiesDefinitiongetSecurityDefinitions()List<SecurityDefinition>getSecurityRequirements()StringgetShortName()StringgetSkipBindingOnErrorCode()StringgetTag()List<VerbDefinition>getVerbs()RestDefinitionhead()RestDefinitionhead(String uri)RestDefinitionid(String id)Sets the id of this node.RestDefinitionoutType(Class<?> classType)ParamDefinitionparam()RestDefinitionparam(ParamDefinition param)ParamDefinitionparam(VerbDefinition verb)RestDefinitionparams(List<ParamDefinition> params)RestDefinitionpatch()RestDefinitionpatch(String uri)RestDefinitionpath(String path)To set the base path of this REST serviceRestDefinitionpost()RestDefinitionpost(String uri)RestDefinitionproduces(String mediaType)RestDefinitionput()RestDefinitionput(String uri)ResponseMessageDefinitionresponseMessage()RestDefinitionresponseMessage(int code, String message)RestDefinitionresponseMessage(String code, String message)RestDefinitionresponseMessage(ResponseMessageDefinition msg)ResponseMessageDefinitionresponseMessage(VerbDefinition verb)RestDefinitionresponseMessages(List<ResponseMessageDefinition> msgs)RestDefinitionsecurity(String key)Sets the security setting for this verb.RestDefinitionsecurity(String key, String scopes)Sets the security setting for this verb.RestSecuritiesDefinitionsecurityDefinitions()To configure security definitions.voidsetApiDocs(String apiDocs)Whether to include or exclude this rest operation in API documentation.voidsetBindingMode(String bindingMode)Sets the binding mode to use.voidsetClientRequestValidation(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.voidsetConsumes(String consumes)To define the content type what the REST service consumes (accept as input), such as application/xml or application/json.voidsetEnableCORS(String enableCORS)Whether to enable CORS headers in the HTTP response.voidsetPath(String path)Path of the rest service, such as "/foo"voidsetProduces(String produces)To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent levelvoidsetSecurityDefinitions(RestSecuritiesDefinition securityDefinitions)Sets the security definitions such as Basic, OAuth2 etc.voidsetSecurityRequirements(List<SecurityDefinition> securityRequirements)Sets the security requirement(s) for all endpoints.voidsetSkipBindingOnErrorCode(String skipBindingOnErrorCode)Whether to skip binding on output if there is a custom HTTP error code header.voidsetTag(String tag)To configure a special tag for the operations within this rest definition.voidsetVerbs(List<VerbDefinition> verbs)The HTTP verbs this REST service accepts and usesRestDefinitionskipBindingOnErrorCode(boolean skipBindingOnErrorCode)RestDefinitiontag(String tag)To set the tag to use of this REST serviceRestDefinitionto(String uri)The Camel endpoint this REST service will call, such as a direct endpoint to link to an existing route that handles this REST call.RestDefinitiontype(Class<?> classType)protected voidvalidateUniquePaths()RestDefinitionverb(String verb)RestDefinitionverb(String verb, String uri)-
Methods inherited from class org.apache.camel.model.OptionalIdentifiedDefinition
getCamelContext, getCustomId, getDescription, getDescriptionText, getId, getLineNumber, getLocation, getParent, hasCustomIdAssigned, idOrCreate, setCamelContext, setCustomId, setDescription, setGeneratedId, setId, setLineNumber, setLocation
-
-
-
-
Method Detail
-
getShortName
public String getShortName()
-
getLabel
public String getLabel()
-
getPath
public String getPath()
-
setPath
public void setPath(String path)
Path of the rest service, such as "/foo"
-
getTag
public String getTag()
-
setTag
public void setTag(String tag)
To configure a special tag for the operations within this rest definition.
-
getConsumes
public String getConsumes()
-
setConsumes
public void setConsumes(String consumes)
To define the content type what the REST service consumes (accept as input), such as application/xml or application/json. This option will override what may be configured on a parent level
-
getProduces
public String getProduces()
-
setProduces
public void setProduces(String produces)
To define the content type what the REST service produces (uses for output), such as application/xml or application/json This option will override what may be configured on a parent level
-
getBindingMode
public String getBindingMode()
-
setBindingMode
public void setBindingMode(String bindingMode)
Sets the binding mode to use. This option will override what may be configured on a parent level The default value is auto
-
getVerbs
public List<VerbDefinition> getVerbs()
-
getSecurityDefinitions
public RestSecuritiesDefinition getSecurityDefinitions()
-
setSecurityDefinitions
public void setSecurityDefinitions(RestSecuritiesDefinition securityDefinitions)
Sets the security definitions such as Basic, OAuth2 etc.
-
getSecurityRequirements
public List<SecurityDefinition> getSecurityRequirements()
-
setSecurityRequirements
public void setSecurityRequirements(List<SecurityDefinition> securityRequirements)
Sets the security requirement(s) for all endpoints.
-
setVerbs
public void setVerbs(List<VerbDefinition> verbs)
The HTTP verbs this REST service accepts and uses
-
getSkipBindingOnErrorCode
public String getSkipBindingOnErrorCode()
-
setSkipBindingOnErrorCode
public void setSkipBindingOnErrorCode(String skipBindingOnErrorCode)
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. This option will override what may be configured on a parent level
-
getClientRequestValidation
public String getClientRequestValidation()
-
setClientRequestValidation
public 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. 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
public String getEnableCORS()
-
setEnableCORS
public void setEnableCORS(String enableCORS)
Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level The default value is false.
-
getApiDocs
public String getApiDocs()
-
setApiDocs
public void setApiDocs(String apiDocs)
Whether to include or exclude this rest operation in API documentation. This option will override what may be configured on a parent level. The default value is true.
-
path
public RestDefinition path(String path)
To set the base path of this REST service
-
tag
public RestDefinition tag(String tag)
To set the tag to use of this REST service
-
get
public RestDefinition get()
-
get
public RestDefinition get(String uri)
-
post
public RestDefinition post()
-
post
public RestDefinition post(String uri)
-
put
public RestDefinition put()
-
put
public RestDefinition put(String uri)
-
patch
public RestDefinition patch()
-
patch
public RestDefinition patch(String uri)
-
delete
public RestDefinition delete()
-
delete
public RestDefinition delete(String uri)
-
head
public RestDefinition head()
-
head
public RestDefinition head(String uri)
-
verb
public RestDefinition verb(String verb)
-
verb
public RestDefinition verb(String verb, String uri)
-
id
public RestDefinition id(String id)
Description copied from class:OptionalIdentifiedDefinitionSets the id of this node. Important: If you want to set the id of the route, then you must use routeId(String) instead.- Overrides:
idin classOptionalIdentifiedDefinition<RestDefinition>- Parameters:
id- the id- Returns:
- the builder
-
deprecated
public RestDefinition deprecated()
-
description
public RestDefinition description(String text)
Description copied from class:OptionalIdentifiedDefinitionSets the description of this node- Overrides:
descriptionin classOptionalIdentifiedDefinition<RestDefinition>- Parameters:
text- sets the text description, use null to not set a text- Returns:
- the builder
-
description
public RestDefinition description(String id, String text, String lang)
Description copied from class:OptionalIdentifiedDefinitionSets the description of this node- Overrides:
descriptionin classOptionalIdentifiedDefinition<RestDefinition>- Parameters:
id- sets the id, use null to not set an idtext- sets the text description, use null to not set a textlang- sets the language for the description, use null to not set a language- Returns:
- the builder
-
consumes
public RestDefinition consumes(String mediaType)
-
param
public ParamDefinition param()
-
param
public RestDefinition param(ParamDefinition param)
-
params
public RestDefinition params(List<ParamDefinition> params)
-
param
public ParamDefinition param(VerbDefinition verb)
-
responseMessage
public RestDefinition responseMessage(ResponseMessageDefinition msg)
-
responseMessage
public ResponseMessageDefinition responseMessage()
-
responseMessage
public ResponseMessageDefinition responseMessage(VerbDefinition verb)
-
responseMessages
public RestDefinition responseMessages(List<ResponseMessageDefinition> msgs)
-
responseMessage
public RestDefinition responseMessage(int code, String message)
-
responseMessage
public RestDefinition responseMessage(String code, String message)
-
securityDefinitions
public RestSecuritiesDefinition securityDefinitions()
To configure security definitions.
-
produces
public RestDefinition produces(String mediaType)
-
type
public RestDefinition type(Class<?> classType)
-
outType
public RestDefinition outType(Class<?> classType)
-
bindingMode
public RestDefinition bindingMode(RestBindingMode mode)
-
bindingMode
public RestDefinition bindingMode(String mode)
-
skipBindingOnErrorCode
public RestDefinition skipBindingOnErrorCode(boolean skipBindingOnErrorCode)
-
clientRequestValidation
public RestDefinition clientRequestValidation(boolean clientRequestValidation)
-
enableCORS
public RestDefinition enableCORS(boolean enableCORS)
-
apiDocs
public RestDefinition apiDocs(Boolean apiDocs)
Include or exclude the current Rest Definition in API documentation. The default value is true.
-
security
public RestDefinition security(String key)
Sets the security setting for this verb.
-
security
public RestDefinition security(String key, String scopes)
Sets the security setting for this verb.
-
to
public RestDefinition to(String uri)
The Camel endpoint this REST service will call, such as a direct endpoint to link to an existing route that handles this REST call.- Parameters:
uri- the uri of the endpoint- Returns:
- this builder
-
buildFromUri
public String buildFromUri(VerbDefinition verb)
Build the from endpoint uri for the verb
-
asRouteDefinition
public List<RouteDefinition> asRouteDefinition(org.apache.camel.CamelContext camelContext)
Transforms this REST definition into a list ofRouteDefinitionwhich Camel routing engine can add and run. This allows us to define REST services using this REST DSL and turn those into regular Camel routes.- Parameters:
camelContext- The Camel context
-
validateUniquePaths
protected void validateUniquePaths()
-
asRouteApiDefinition
public static RouteDefinition asRouteApiDefinition(org.apache.camel.CamelContext camelContext, org.apache.camel.spi.RestConfiguration configuration)
Transforms the rest api configuration into aRouteDefinitionwhich Camel routing engine uses to service the rest api docs.
-
-