RestTemplate 简介

    RestTemplate 是 Spring Resources 中一个访问第三方 RESTful API 接口的网络请求框架。 RestTemplate 的设计原则和其他 Spring Template (例如 JdbcTemplate、 JmsTemplate)类似,都 是为执行复杂任务提供了一个具有默认行为的简单方法。 

    RestTemplate 是用来消费 REST 服务的,所以 RestTemplate 的主要方法都与 REST 的 Http协议的一些方法紧密相连,例如 HEAD、 GET、 POST、 PUT、 DELETE 和 OPTIONS 等方法, 这些方法在 RestTemplate 类对应的方法为 headFor Headers()、 getForObject()、 postForObject()、 put()和 delete()等。 

    举例说明,写一个 RestTestController 类,获取 https://www.baidu.com/的网页 Html 代码。 首先在 RestTestController 类上加@RestController 注解,开启 RestController 的功能。通过 RestTemplate 的 getForObject()方法可以获取 https://www.baidu.com/的网页 Html 代码,并在 API 接口“/testRest” 返回该网页的 Html 字符串。代码如下:

在Spring中@RestController的作用等同于@Controller + @ResponseBody。

@RestController

public class RestTestController {

@GetMapping("/testRest")

public String testRest(){

RestTemplate restTemplate=new RestTemplate();

return  restTemplate.getForObject("https://www.baidu.com",String.class);

}

}

结果:


    RestTemplate 支持常见的 Http 协议的请求方法,例如 Post、 Put、 Delete 等,所以用 RestTemplate 很容易构建 阻STful API。在上面的例子中 , RestTemplate 用 Get 方法获取https://www.baidu.com 网页的 Html 字符串。 RestTemplate 的使用很简单,它支持 Xml、 JSON 数据格式,默认实现了序列化,可以自动将 JOSN 字符串转换为实体。例如以下代码可以将返 回的 JSON 字符申转换成一个 User 对象。

User user =restTemplate.getForObject("https://www.xxx.com",User.class);


                                                                   摘自《深入理解Spring Could与微服务构建》P82

你可能感兴趣的:(RestTemplate 简介)