public interface RestClientBuilder extends jakarta.ws.rs.core.Configurable<RestClientBuilder>
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()
.
Modifier and Type | Method and Description |
---|---|
default RestClientBuilder |
baseUri(URI uri)
Specifies the base URI to be used when making requests.
|
RestClientBuilder |
baseUrl(URL url)
Specifies the base URL to be used when making requests.
|
<T> T |
build(Class<T> clazz)
Based on the configured RestClientBuilder, creates a new instance of the given REST interface to invoke API calls
against.
|
RestClientBuilder |
connectTimeout(long timeout,
TimeUnit unit)
Set the connect timeout.
|
RestClientBuilder |
executorService(ExecutorService executor)
Specifies the
ExecutorService to use when invoking asynchronous Rest Client interface methods. |
RestClientBuilder |
followRedirects(boolean follow)
Specifies whether client built by this builder should follow HTTP redirect responses (30x) or not.
|
RestClientBuilder |
hostnameVerifier(HostnameVerifier hostnameVerifier)
Set the hostname verifier to verify the endpoint's hostname
|
RestClientBuilder |
keyStore(KeyStore keyStore,
String keystorePassword)
Set the client-side key store.
|
static RestClientBuilder |
newBuilder() |
RestClientBuilder |
proxyAddress(String proxyHost,
int proxyPort)
Specifies the HTTP proxy hostname/IP address and port to use for requests from client instances.
|
RestClientBuilder |
queryParamStyle(QueryParamStyle style)
Specifies the URI formatting style to use when multiple query parameter values are passed to the client.
|
RestClientBuilder |
readTimeout(long timeout,
TimeUnit unit)
Set the read timeout.
|
RestClientBuilder |
sslContext(SSLContext sslContext)
Specifies the SSL context to use when creating secured transport connections to server endpoints from web targets
created by the client instance that is using this SSL context.
|
RestClientBuilder |
trustStore(KeyStore trustStore)
Set the client-side trust store.
|
static RestClientBuilder newBuilder()
RestClientBuilder baseUrl(URL url)
@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.url
- the base Url for the service.default RestClientBuilder baseUri(URI uri)
@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.uri
- the base URI for the service.IllegalArgumentException
- if the passed in URI is invalidRestClientBuilder connectTimeout(long timeout, TimeUnit unit)
Like JAX-RS's javax.ws.rs.client.ClientBuilder
's connectTimeout
method, specifying a
timeout of 0 represents infinity, and negative values are not allowed.
If the client instance is injected via CDI and the "fully.qualified.InterfaceName/mp-rest/connectTimeout" property is set via MicroProfile Config, that property's value will override, the value specified to this method.
timeout
- the maximum time to wait.unit
- the time unit of the timeout argument.IllegalArgumentException
- - if the value of timeout is negative.RestClientBuilder readTimeout(long timeout, TimeUnit unit)
Like JAX-RS's javax.ws.rs.client.ClientBuilder
's readTimeout
method, specifying a
timeout of 0 represents infinity, and negative values are not allowed.
Also like the JAX-RS Client API, if the read timeout is reached, the client interface method will throw a
javax.ws.rs.ProcessingException
.
If the client instance is injected via CDI and the "fully.qualified.InterfaceName/mp-rest/readTimeout" property is set via MicroProfile Config, that property's value will override, the value specified to this method.
timeout
- the maximum time to wait.unit
- the time unit of the timeout argument.IllegalArgumentException
- - if the value of timeout is negative.RestClientBuilder executorService(ExecutorService executor)
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.executor
- the executor service for the runtime to use when invoking asynchronous Rest Client interface methods -
must be non-null.IllegalArgumentException
- if the executor
parameter is null.RestClientBuilder sslContext(SSLContext sslContext)
sslContext
- the ssl contextNullPointerException
- if the sslContext
parameter is null.RestClientBuilder trustStore(KeyStore trustStore)
trustStore
- key storeNullPointerException
- if the trustStore
parameter is null.RestClientBuilder keyStore(KeyStore keyStore, String keystorePassword)
keyStore
- key storekeystorePassword
- the password for the specified keyStore
NullPointerException
- if the keyStore
parameter is null.RestClientBuilder hostnameVerifier(HostnameVerifier hostnameVerifier)
hostnameVerifier
- the hostname verifierNullPointerException
- if the hostnameVerifier
parameter is null.RestClientBuilder followRedirects(boolean follow)
follow
- - true if the client should follow HTTP redirects, false if not.RestClientBuilder proxyAddress(String proxyHost, int proxyPort)
proxyHost
- - hostname or IP address of proxy server - must be non-nullproxyPort
- - port of proxy serverIllegalArgumentException
- if the proxyHost
is null or the proxyPort
is invalidRestClientBuilder queryParamStyle(QueryParamStyle style)
style
- - the URI formatting style to use for multiple query parameter values<T> T build(Class<T> clazz) throws IllegalStateException, RestClientDefinitionException
T
- the type of the interfaceclazz
- the interface that defines REST API methods for useIllegalStateException
- 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.Copyright © 2017 – 2021 Eclipse Foundation. All rights reserved.
Use is subject to license terms.