-
Notifications
You must be signed in to change notification settings - Fork 55
HTTP client
Mariusz Kopylec edited this page Jun 11, 2019
·
7 revisions
The WebMVC module uses RestTemplate
to forward requests.
Its timeouts and underlying HTTP client can be configured.
To configure the HTTP client ClientHttpRequestFactoryCreator
needs to be implemented and ClientHttpRequestFactoryCreatorConfigurer
extended.
The default RestTemplate
configuration looks like below:
import static com.github.mkopylec.charon.configuration.CharonConfigurer.charonConfiguration;
import static com.github.mkopylec.charon.forwarding.OkClientHttpRequestFactoryCreatorConfigurer.okClientHttpRequestFactoryCreator;
import static com.github.mkopylec.charon.forwarding.RestTemplateConfigurer.restTemplate;
import static com.github.mkopylec.charon.forwarding.TimeoutConfigurer.timeout;
@Configuration
class CharonConfiguration {
@Bean
CharonConfigurer charonConfigurer() {
return charonConfiguration()
.set(restTemplate()
.set(timeout().connection(ofMillis(100)).read(ofMillis(1000)).write(ofMillis(500)))
.set(okClientHttpRequestFactoryCreator())
.set(<interceptors>));
}
}
The WebFlux module uses WebClient
to forward requests.
Its timeouts and underlying HTTP client can be configured.
To configure the HTTP client ClientHttpConnectorCreator
needs to be implemented and ClientHttpConnectorCreatorConfigurer
extended.
The default WebClient
configuration looks like below:
import static com.github.mkopylec.charon.configuration.CharonConfigurer.charonConfiguration;
import static com.github.mkopylec.charon.forwarding.ReactorClientHttpConnectorCreatorConfigurer.reactorClientHttpConnectorCreator;
import static com.github.mkopylec.charon.forwarding.TimeoutConfigurer.timeout;
import static com.github.mkopylec.charon.forwarding.WebClientConfigurer.webClient;
@Configuration
class CharonConfiguration {
@Bean
CharonConfigurer charonConfigurer() {
return charonConfiguration()
.set(webClient()
.set(timeout().connection(ofMillis(100)).read(ofMillis(1000)).write(ofMillis(500)))
.set(reactorClientHttpConnectorCreator())
.set(<interceptors>)));
}
}