The RestTemplate (included in Spring-web module) is the core class for client-side access to RESTful services.
In this quick example, we will learn how to use RestTemplate for making an HTTP GET method request and capture the response.
Example
A simple Spring Restful Service
@RestController
@RequestMapping("users")
public class UserController {
@RequestMapping("{id}")
public String getUserById(@PathVariable("id") String userId) {
return "returning dummy user with id " + userId;
}
}
To try examples, run embedded tomcat (configured in pom.xml of example project below):
mvn tomcat7:run-war
Service client using RestTemplate
public class UserClient {
public static void main(String[] args) {
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> responseEntity = restTemplate.getForEntity(
"http://localhost:8080/users/40", String.class);
System.out.println("-- response --");
System.out.println("status: "+responseEntity.getStatusCodeValue());
System.out.println("headers: "+responseEntity.getHeaders().toSingleValueMap());
System.out.println("body: "+responseEntity.getBody());
}
}
Output
-- response -- status: 200 headers: {Server=Apache-Coyote/1.1, Content-Type=text/plain;charset=ISO-8859-1, Content-Length=31, Date=Wed, 16 Aug 2017 19:57:20 GMT} body: returning dummy user with id 40