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 Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     

    Fields inherited from class org.apache.camel.support.service.BaseService

    BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    RestOpenApiComponent(org.apache.camel.CamelContext context)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.apache.camel.Endpoint
    createEndpoint(String uri, String remaining, Map<String,Object> parameters)
     
     
     
     
     
     
     
    org.apache.camel.support.jsse.SSLContextParameters
     
    boolean
     
    void
    setBasePath(String basePath)
     
    void
    setComponentName(String componentName)
     
    void
    setConsumes(String consumes)
     
    void
     
    void
    setProduces(String produces)
     
    void
    setSpecificationUri(URI specificationUri)
     
    void
    setSslContextParameters(org.apache.camel.support.jsse.SSLContextParameters sslContextParameters)
     
    void
    setUseGlobalSslContextParameters(boolean useGlobalSslContextParameters)
     

    Methods inherited from class org.apache.camel.support.DefaultComponent

    afterConfiguration, createEndpoint, createEndpoint, doBuild, doInit, getAndRemoveOrResolveReferenceParameter, getAndRemoveOrResolveReferenceParameter, getAndRemoveParameter, getAndRemoveParameter, getCamelContext, getComponentPropertyConfigurer, getDefaultName, getEndpointPropertyConfigurer, getExtension, getSupportedExtensions, ifStartsWithReturnRemainder, isAutowiredEnabled, isBridgeErrorHandler, isLazyStartProducer, registerExtension, registerExtension, resolveAndRemoveReferenceListParameter, resolveAndRemoveReferenceListParameter, resolveAndRemoveReferenceParameter, resolveAndRemoveReferenceParameter, resolveRawParameterValues, setAutowiredEnabled, setBridgeErrorHandler, setCamelContext, setLazyStartProducer, setProperties, setProperties, setProperties, useIntrospectionOnEndpoint, useRawUri, validateParameters, validateURI

    Methods inherited from class org.apache.camel.support.service.BaseService

    build, doFail, doLifecycleChange, doResume, doShutdown, doStart, doStop, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.camel.CamelContextAware

    setCamelContext

    Methods inherited from interface org.apache.camel.spi.HasCamelContext

    getCamelContext

    Methods inherited from interface org.apache.camel.Service

    build, close, init, start, stop

    Methods inherited from interface org.apache.camel.ShutdownableService

    shutdown

    Methods inherited from interface org.apache.camel.SSLContextParametersAware

    retrieveGlobalSslContextParameters

    Methods inherited from interface org.apache.camel.StatefulService

    getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending

    Methods inherited from interface org.apache.camel.SuspendableService

    isSuspended, resume, suspend
  • 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
    • getBasePath

      public String getBasePath()
    • getComponentName

      public String getComponentName()
    • getConsumes

      public String getConsumes()
    • getHost

      public String getHost()
    • getProduces

      public String getProduces()
    • getSpecificationUri

      public URI getSpecificationUri()
    • getSslContextParameters

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

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

      public void setBasePath(String basePath)
    • setComponentName

      public void setComponentName(String componentName)
    • setConsumes

      public void setConsumes(String consumes)
    • setHost

      public void setHost(String host)
    • setProduces

      public void setProduces(String produces)
    • setSpecificationUri

      public void setSpecificationUri(URI 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