Class 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 Detail

      • RestDefinition

        public RestDefinition()
    • 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
      • getDisabled

        public String getDisabled()
      • setDisabled

        public void setDisabled​(String disabled)
        Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime.
      • 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

      • setSecurityDefinitions

        public void setSecurityDefinitions​(RestSecuritiesDefinition securityDefinitions)
        Sets the security definitions such as Basic, OAuth2 etc.
      • 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.

      • disabled

        public RestDefinition disabled()
        Disables this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime.
      • disabled

        public RestDefinition disabled​(boolean disabled)
        Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime.
      • disabled

        public RestDefinition disabled​(String disabled)
        Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it cannot be enabled later at runtime.
      • 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.
      • 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 of RouteDefinition which 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​(List<VerbDefinition> verbs)
      • validateUniqueDirects

        protected void validateUniqueDirects​(List<VerbDefinition> verbs)
      • asTypeName

        protected String asTypeName​(Class<?> classType)
      • asRouteApiDefinition

        public static RouteDefinition asRouteApiDefinition​(org.apache.camel.CamelContext camelContext,
                                                           org.apache.camel.spi.RestConfiguration configuration)
        Transforms the rest api configuration into a RouteDefinition which Camel routing engine uses to service the rest api docs.