public class RestTemplateBuilder extends Object
RestTemplate. Provides
convenience methods to register converters, error handlers and
UriTemplateHandlers.
By default the built RestTemplate will attempt to use the most suitable
ClientHttpRequestFactory, call detectRequestFactory(false) if you prefer to keep the default. In a typical
auto-configured Spring Boot application this builder is available as a bean and can be
injected whenever a RestTemplate is needed.
| Constructor and Description |
|---|
RestTemplateBuilder(RestTemplateCustomizer... customizers)
Create a new
RestTemplateBuilder instance. |
public RestTemplateBuilder(RestTemplateCustomizer... customizers)
RestTemplateBuilder instance.customizers - any RestTemplateCustomizers that
should be applied when the RestTemplate is builtpublic RestTemplateBuilder detectRequestFactory(boolean detectRequestFactory)
ClientHttpRequestFactory should be detected based on the
classpath. Default if true.detectRequestFactory - if the ClientHttpRequestFactory should be
detectedpublic RestTemplateBuilder rootUri(String rootUri)
'/'.
Since this works by adding a UriTemplateHandler to the
RestTemplate, the root URL will only apply when String variants of
the RestTemplate methods are used for specifying the request URL. See
RootUriTemplateHandler for details.rootUri - the root URI or nullpublic RestTemplateBuilder messageConverters(HttpMessageConverter<?>... messageConverters)
HttpMessageConverters that should be used with
the RestTemplate. Setting this value will replace any previously configured
converters and any converters configured on the builder will replace RestTemplate's
default converters.messageConverters - the converters to setadditionalMessageConverters(HttpMessageConverter...)public RestTemplateBuilder messageConverters(Collection<? extends HttpMessageConverter<?>> messageConverters)
HttpMessageConverters that should be used with
the RestTemplate. Setting this value will replace any previously configured
converters and any converters configured on the builder will replace RestTemplate's
default converters.messageConverters - the converters to setadditionalMessageConverters(HttpMessageConverter...)public RestTemplateBuilder additionalMessageConverters(HttpMessageConverter<?>... messageConverters)
HttpMessageConverters that should be
used with the RestTemplate. Any converters configured on the builder will
replace RestTemplate's default converters.messageConverters - the converters to addmessageConverters(HttpMessageConverter...)public RestTemplateBuilder additionalMessageConverters(Collection<? extends HttpMessageConverter<?>> messageConverters)
HttpMessageConverters that should be
used with the RestTemplate. Any converters configured on the builder will
replace RestTemplate's default converters.messageConverters - the converters to addmessageConverters(HttpMessageConverter...)public RestTemplateBuilder defaultMessageConverters()
HttpMessageConverters that should be used with
the RestTemplate to the default set. Calling this method will replace any
previously defined converters.messageConverters(HttpMessageConverter...)public RestTemplateBuilder interceptors(ClientHttpRequestInterceptor... interceptors)
ClientHttpRequestInterceptors that
should be used with the RestTemplate. Setting this value will replace any
previously defined interceptors.interceptors - the interceptors to setadditionalInterceptors(ClientHttpRequestInterceptor...)public RestTemplateBuilder interceptors(Collection<ClientHttpRequestInterceptor> interceptors)
ClientHttpRequestInterceptors that
should be used with the RestTemplate. Setting this value will replace any
previously defined interceptors.interceptors - the interceptors to setadditionalInterceptors(ClientHttpRequestInterceptor...)public RestTemplateBuilder additionalInterceptors(ClientHttpRequestInterceptor... interceptors)
ClientHttpRequestInterceptors
that should be used with the RestTemplate.interceptors - the interceptors to addinterceptors(ClientHttpRequestInterceptor...)public RestTemplateBuilder additionalInterceptors(Collection<? extends ClientHttpRequestInterceptor> interceptors)
ClientHttpRequestInterceptors
that should be used with the RestTemplate.interceptors - the interceptors to addinterceptors(ClientHttpRequestInterceptor...)public RestTemplateBuilder requestFactory(Class<? extends ClientHttpRequestFactory> requestFactory)
ClientHttpRequestFactory class that should be used with the
RestTemplate.requestFactory - the request factory to usepublic RestTemplateBuilder requestFactory(Supplier<ClientHttpRequestFactory> requestFactory)
Supplier of ClientHttpRequestFactory that should be called
each time we build() a new RestTemplate instance.requestFactory - the supplier for the request factorypublic RestTemplateBuilder uriTemplateHandler(UriTemplateHandler uriTemplateHandler)
UriTemplateHandler that should be used with the
RestTemplate.uriTemplateHandler - the URI template handler to usepublic RestTemplateBuilder errorHandler(ResponseErrorHandler errorHandler)
ResponseErrorHandler that should be used with the
RestTemplate.errorHandler - the error handler to usepublic RestTemplateBuilder basicAuthentication(String username, String password)
username - the user namepassword - the passwordbasicAuthentication(String, String, Charset)public RestTemplateBuilder basicAuthentication(String username, String password, Charset charset)
username - the user namepassword - the passwordcharset - the charset to usepublic RestTemplateBuilder defaultHeader(String name, String... values)
HttpClientRequest.name - the name of the headervalues - the header valuespublic RestTemplateBuilder setConnectTimeout(Duration connectTimeout)
ClientHttpRequestFactory.connectTimeout - the connection timeoutpublic RestTemplateBuilder setReadTimeout(Duration readTimeout)
ClientHttpRequestFactory.readTimeout - the read timeoutpublic RestTemplateBuilder setBufferRequestBody(boolean bufferRequestBody)
ClientHttpRequestFactory should buffer the
request body internally.bufferRequestBody - value of the bufferRequestBody parameterSimpleClientHttpRequestFactory.setBufferRequestBody(boolean),
HttpComponentsClientHttpRequestFactory.setBufferRequestBody(boolean)public RestTemplateBuilder customizers(RestTemplateCustomizer... customizers)
RestTemplateCustomizers that should be
applied to the RestTemplate. Customizers are applied in the order that they
were added after builder configuration has been applied. Setting this value will
replace any previously configured customizers.customizers - the customizers to setadditionalCustomizers(RestTemplateCustomizer...)public RestTemplateBuilder customizers(Collection<? extends RestTemplateCustomizer> customizers)
RestTemplateCustomizers that should be
applied to the RestTemplate. Customizers are applied in the order that they
were added after builder configuration has been applied. Setting this value will
replace any previously configured customizers.customizers - the customizers to setadditionalCustomizers(RestTemplateCustomizer...)public RestTemplateBuilder additionalCustomizers(RestTemplateCustomizer... customizers)
RestTemplateCustomizers that should be applied
to the RestTemplate. Customizers are applied in the order that they were
added after builder configuration has been applied.customizers - the customizers to addcustomizers(RestTemplateCustomizer...)public RestTemplateBuilder additionalCustomizers(Collection<? extends RestTemplateCustomizer> customizers)
RestTemplateCustomizers that should be applied
to the RestTemplate. Customizers are applied in the order that they were
added after builder configuration has been applied.customizers - the customizers to addcustomizers(RestTemplateCustomizer...)public RestTemplateBuilder requestCustomizers(RestTemplateRequestCustomizer<?>... requestCustomizers)
RestTemplateRequestCustomizers that
should be applied to the ClientHttpRequest. Customizers are applied in the
order that they were added. Setting this value will replace any previously
configured request customizers.requestCustomizers - the request customizers to setadditionalRequestCustomizers(RestTemplateRequestCustomizer...)public RestTemplateBuilder requestCustomizers(Collection<? extends RestTemplateRequestCustomizer<?>> requestCustomizers)
RestTemplateRequestCustomizers that
should be applied to the ClientHttpRequest. Customizers are applied in the
order that they were added. Setting this value will replace any previously
configured request customizers.requestCustomizers - the request customizers to setadditionalRequestCustomizers(RestTemplateRequestCustomizer...)public RestTemplateBuilder additionalRequestCustomizers(RestTemplateRequestCustomizer<?>... requestCustomizers)
RestTemplateRequestCustomizers that
should be applied to the ClientHttpRequest. Customizers are applied in the
order that they were added.requestCustomizers - the request customizers to addrequestCustomizers(RestTemplateRequestCustomizer...)public RestTemplateBuilder additionalRequestCustomizers(Collection<? extends RestTemplateRequestCustomizer<?>> requestCustomizers)
RestTemplateRequestCustomizers that
should be applied to the ClientHttpRequest. Customizers are applied in the
order that they were added.requestCustomizers - the request customizers to addrequestCustomizers(Collection)public RestTemplate build()
RestTemplate instance and configure it using this builder.RestTemplate instance.build(Class),
configure(RestTemplate)public <T extends RestTemplate> T build(Class<T> restTemplateClass)
RestTemplate instance of the specified type and configure it
using this builder.T - the type of rest templaterestTemplateClass - the template type to createRestTemplate instance.build(),
configure(RestTemplate)public <T extends RestTemplate> T configure(T restTemplate)
RestTemplate instance using this builder.T - the type of rest templaterestTemplate - the RestTemplate to configurebuild(),
build(Class)public ClientHttpRequestFactory buildRequestFactory()
ClientHttpRequestFactory instance using the settings of this
builder.ClientHttpRequestFactory or nullCopyright © 2020 Pivotal Software, Inc.. All rights reserved.