Class RestOpenApiComponent

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.DefaultComponent
org.apache.camel.component.rest.openapi.RestOpenApiComponent
All Implemented Interfaces:
AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.Component, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.HasCamelContext, org.apache.camel.SSLContextParametersAware, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

@Component("rest-openapi") public final class RestOpenApiComponent extends org.apache.camel.support.DefaultComponent implements org.apache.camel.SSLContextParametersAware
An awesome REST component backed by OpenApi specifications. Creates endpoints that connect to REST APIs defined by OpenApi specification. This component delegates to other RestProducerFactory components to act as REST clients, but it configures them from OpenApi specification. Client needs to point to operation that it wants to invoke via REST, provide any additional HTTP headers as headers in the Camel message, and any payload as the body of the incoming message.

Example usage using Java DSL:

 from(...).to("rest-openapi:https://petstore3.swagger.io/api/v3/openapi.json#getPetById")
 

This relies on only one RestProducerFactory component being available to Camel, you can use specific, for instance preconfigured component by using the componentName endpoint property. For example using Undertow component in Java DSL:

 Component undertow = new UndertowComponent();
 undertow.setSslContextParameters(...);
 //...
 camelContext.addComponent("myUndertow", undertow);

 from(...).to("rest-openapi:https://petstore3.swagger.io/api/v3/openapi.json#getPetById?componentName=myUndertow")
 

The most concise way of using this component would be to define it in the Camel context under a meaningful name, for example:

 Component petstore = new RestOpenApiComponent();
 petstore.setSpecificationUri("https://petstore3.swagger.io/api/v3/openapi.json");
 petstore.setComponentName("undertow");
 //...
 camelContext.addComponent("petstore", petstore);

 from(...).to("petstore:getPetById")
 
  • Field Details

  • Constructor Details

    • RestOpenApiComponent

      public RestOpenApiComponent()
    • RestOpenApiComponent

      public RestOpenApiComponent(org.apache.camel.CamelContext context)
  • Method Details

    • createEndpoint

      protected org.apache.camel.Endpoint createEndpoint(String uri, String remaining, Map<String,Object> parameters) throws Exception
      Specified by:
      createEndpoint in class org.apache.camel.support.DefaultComponent
      Throws:
      Exception
    • doInit

      protected void doInit() throws Exception
      Overrides:
      doInit in class org.apache.camel.support.DefaultComponent
      Throws:
      Exception
    • getBasePath

      public String getBasePath()
    • getComponentName

      public String getComponentName()
    • getConsumerComponentName

      public String getConsumerComponentName()
    • getConsumes

      public String getConsumes()
    • getHost

      public String getHost()
    • getProduces

      public String getProduces()
    • getSpecificationUri

      public String getSpecificationUri()
    • getSslContextParameters

      public org.apache.camel.support.jsse.SSLContextParameters getSslContextParameters()
    • isUseGlobalSslContextParameters

      public boolean isUseGlobalSslContextParameters()
      Specified by:
      isUseGlobalSslContextParameters in interface org.apache.camel.SSLContextParametersAware
    • getRestOpenapiProcessorStrategy

      public RestOpenapiProcessorStrategy getRestOpenapiProcessorStrategy()
    • setRestOpenapiProcessorStrategy

      public void setRestOpenapiProcessorStrategy(RestOpenapiProcessorStrategy restOpenapiProcessorStrategy)
    • getMissingOperation

      public String getMissingOperation()
    • setMissingOperation

      public void setMissingOperation(String missingOperation)
    • getMockIncludePattern

      public String getMockIncludePattern()
    • setMockIncludePattern

      public void setMockIncludePattern(String mockIncludePattern)
    • getApiContextPath

      public String getApiContextPath()
    • setApiContextPath

      public void setApiContextPath(String apiContextPath)
    • setBasePath

      public void setBasePath(String basePath)
    • setComponentName

      public void setComponentName(String componentName)
    • setConsumerComponentName

      public void setConsumerComponentName(String consumerComponentName)
    • setConsumes

      public void setConsumes(String consumes)
    • setHost

      public void setHost(String host)
    • setProduces

      public void setProduces(String produces)
    • setSpecificationUri

      public void setSpecificationUri(String specificationUri)
    • setSslContextParameters

      public void setSslContextParameters(org.apache.camel.support.jsse.SSLContextParameters sslContextParameters)
    • setUseGlobalSslContextParameters

      public void setUseGlobalSslContextParameters(boolean useGlobalSslContextParameters)
      Specified by:
      setUseGlobalSslContextParameters in interface org.apache.camel.SSLContextParametersAware
    • setRequestValidationEnabled

      public void setRequestValidationEnabled(boolean requestValidationEnabled)
    • isRequestValidationEnabled

      public boolean isRequestValidationEnabled()
    • isClientRequestValidation

      public boolean isClientRequestValidation()
    • setClientRequestValidation

      public void setClientRequestValidation(boolean clientRequestValidation)
    • isClientResponseValidation

      public boolean isClientResponseValidation()
    • setClientResponseValidation

      public void setClientResponseValidation(boolean clientResponseValidation)
    • getBindingPackageScan

      public String getBindingPackageScan()
    • setBindingPackageScan

      public void setBindingPackageScan(String bindingPackageScan)