Interface RestClientBuilder

All Superinterfaces:
Configurable<RestClientBuilder>

public interface RestClientBuilder extends Configurable<RestClientBuilder>
This is the main entry point for creating a Type Safe Rest Client.

Invoking newBuilder() is intended to always create a new instance, not use a cached version.

The RestClientBuilder is a Configurable class as defined by JAX-RS. This allows a user to register providers, implementation specific configuration.

Implementations are expected to implement this class and provide the instance via the mechanism in RestClientBuilderResolver.instance().

  • Method Details

    • newBuilder

      static RestClientBuilder newBuilder()
    • baseUrl

      RestClientBuilder baseUrl(URL url)
      Specifies the base URL to be used when making requests. Assuming that the interface has a @Path("/api") at the interface level and a url is given with http://my-service:8080/service then all REST calls will be invoked with a url of http://my-service:8080/service/api in addition to any @Path annotations included on the method. Subsequent calls to this method will replace the previously specified baseUri/baseUrl.
      Parameters:
      url - the base Url for the service.
      Returns:
      the current builder with the baseUrl set.
    • baseUri

      default RestClientBuilder baseUri(URI uri)
      Specifies the base URI to be used when making requests. Assuming that the interface has a @Path("/api") at the interface level and a uri is given with http://my-service:8080/service then all REST calls will be invoked with a uri of http://my-service:8080/service/api in addition to any @Path annotations included on the method. Subsequent calls to this method will replace the previously specified baseUri/baseUrl.
      Parameters:
      uri - the base URI for the service.
      Returns:
      the current builder with the baseUri set
      Throws:
      IllegalArgumentException - if the passed in URI is invalid
      Since:
      1.1
    • executorService

      RestClientBuilder executorService(ExecutorService executor)
      Specifies the ExecutorService to use when invoking asynchronous Rest Client interface methods. By default, the executor service used is determined by the MP Rest Client implementation runtime.
      Parameters:
      executor - the executor service for the runtime to use when invoking asynchronous Rest Client interface methods - must be non-null.
      Returns:
      the current builder with the executorService set.
      Throws:
      IllegalArgumentException - if the executor parameter is null.
    • build

      Based on the configured RestClientBuilder, creates a new instance of the given REST interface to invoke API calls against.
      Type Parameters:
      T - the type of the interface
      Parameters:
      clazz - the interface that defines REST API methods for use
      Returns:
      a new instance of an implementation of this REST interface that
      Throws:
      IllegalStateException - if not all pre-requisites are satisfied for the builder, this exception may get thrown. For instance, if the base URI/URL has not been set.
      RestClientDefinitionException - if the passed-in interface class is invalid.