Spring Boot 2 RestTemplate

Step to do

  • Create a Spring Boot project for Restful Web-Services.

  • Create a Spring Boot project for Spring RestTemplate

  • Create a simple Bussiness Model

  • Implement RestController for Restful Web-Services

  • Configure Restful-Web Services Security

  • Config Spring RestTemplate Security

  • Create a RestfulClient

  • Make calls Restful Service by RestfulClient

  • Build & Enjoy Results

Config Spring RestTemplate Security

  • For customize RestTemplate Client, we use constructure:

RestTemplate restTemplate = new RestTemplate(requestFactory);
public class RestTemplateBuilder {
	public static RestTemplate securityRestTemplateBuilder(String username, String password) {
		//...
	}
}
  • Configure HttpClient for Username/Password credential

private static HttpClient createHttpClient(String username, String password) {
	CredentialsProvider provider = new BasicCredentialsProvider();
	UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(username, password);
	provider.setCredentials(AuthScope.ANY, credentials);
	HttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
	return client;
}
  • Config ClientHttpRequestFactory for Spring RestTemplate:

private static ClientHttpRequestFactory createRequestFactory(HttpClient httpClient) {
	HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
	clientHttpRequestFactory.setHttpClient(httpClient);
	return clientHttpRequestFactory;
}
  • Config Spring RestTemplate with ClientHttpRequestFactory:

public class RestTemplateBuilder {
	public static RestTemplate securityRestTemplateBuilder(String username, String password) {
		HttpClient httpClient = createHttpClient(username, password);
		ClientHttpRequestFactory requestFactory = createRequestFactory(httpClient);
		RestTemplate restTemplate = new RestTemplate(requestFactory);
		return restTemplate;
	}
}

References