Class RestApi.Builder<B extends RestApi.Builder<B,T>,T extends RestApi>

java.lang.Object
io.helidon.integrations.common.rest.RestApi.Builder<B,T>
Type Parameters:
B - type of the builder (a subclass of this class)
T - type of the built RestApi
All Implemented Interfaces:
Builder<B,T>, Supplier<T>
Direct Known Subclasses:
VaultRestApi.BuilderBase
Enclosing interface:
RestApi

public abstract static class RestApi.Builder<B extends RestApi.Builder<B,T>,T extends RestApi> extends Object implements Builder<B,T>
Base builder for REST APIs.
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • build

      public final T build()
      This method is final, as we need to call the preBuild(), doBuild() and postBuild() methods.
      Specified by:
      build in interface Builder<B extends RestApi.Builder<B,T>,T extends RestApi>
      Returns:
      built instance
    • get

      public final T get()
      Specified by:
      get in interface Builder<B extends RestApi.Builder<B,T>,T extends RestApi>
      Specified by:
      get in interface Supplier<B extends RestApi.Builder<B,T>>
    • config

      public B config(Config config)
      Configure this builder from config. Uses webclient key to configure the Http1Client builder, and jsonp key to configure the JSON factories.
      Parameters:
      config - configuration on the node of this rest API
      Returns:
      updated builder
    • faultTolerance

      public B faultTolerance(FtHandler ftHandler)
      Configure the fault tolerance handler to use with client requests.
      Parameters:
      ftHandler - fault tolerance handler
      Returns:
      updated builder
    • webClientBuilder

      public B webClientBuilder(Consumer<WebClientConfig.Builder> updater)
      Update web client builder. This can be used to configure HttpClientConfig.BuilderBase.socketOptions(SocketOptions).
      Parameters:
      updater - consumer that updates the web client builder
      Returns:
      updated builder instance
    • me

      protected B me()
      Allows returning the correct type when subclassing.
      Returns:
      this instance typed as subclass
    • preBuild

      protected void preBuild()
      Pre build method. This implementation builds the web client and sets up JSON factories.
    • postBuild

      protected void postBuild()
      Post build method. This implementation does nothing
    • doBuild

      protected abstract T doBuild()
      Build an instance of RestApi implementation.
      Returns:
      a new instance
    • webClient

      protected WebClient webClient()
      WebClient instance, available after postBuild() is called.
      Returns:
      web client
    • ftHandler

      protected FtHandler ftHandler()
      Configured Fault tolerance handler.
      Returns:
      handler
    • jsonBuilderFactory

      protected JsonBuilderFactory jsonBuilderFactory()
      JSON builder factory.
      Returns:
      builder factory
    • jsonReaderFactory

      protected JsonReaderFactory jsonReaderFactory()
      JSON reader factory.
      Returns:
      reader factory
    • jsonWriterFactory

      protected JsonWriterFactory jsonWriterFactory()
      JSON writer factory.
      Returns:
      writer factory