计算机系统应用教程网站

网站首页 > 技术文章 正文

SpringBoot终结篇:RestTemplate实践与详解,专栏最后一篇?

btikc 2024-10-13 01:50:32 技术文章 10 ℃ 0 评论

告别篇

有话要说

不善于言谈、不善笔墨、更不善交际..为何坚持写作?

虽如此,但是个人有一颗分享的心,有满腔的热情,更坚信只要坚持写作就能有所提升,就能受益于更多的人那就足够了。

赠言:未来又有何惧,编程之路需要小伙伴的相互扶持,所以徘徊在编程技能无法提升到的朋友应该试着突破下自己,让程序员发挥更大的价值。

感慨:一路走来,感谢有你,曾今有多少次想放弃这种分享(累)?曾经有多少个加班夜~回家尚需继续“奋斗”(一般晚上11点下班,再坚持写篇分享大约凌晨1点多)?

虽然已走向管理型技术岗位(工作上自己把控时间多些,可专注于技术研究),但是为什么觉得累了呢?

一切的一切只有经历的人才能更深一层的体会,不管如何2018年已过去,再多的苦言也随它而去。

感谢关注我的小伙伴,你们收获的不是一篇一篇可估量有价值的文章,而是工作当中遇到问题,我愿竭尽全力与你共同寻求解决方案,编程之路有你们不孤单,向我的811个好友致谢!加油2019。

结点:伴随SpringBoot专栏(入门篇)的第19讲也是2019年的第一天,这个栏目到这就结束了。迎接我们是崭新的一年,崭新的计划,大家准备好了吗?@架构师速成记

?正文:

本篇将简单介绍RestTemplate中的几个常用方法,也希望在以后微服务实践过程中该技能有所帮助。

主要从以下四个方面来介绍RestTemplate的使用:

  • GET请求
  • POST请求
  • PUT请求
  • DELETE请求

Demo开始

本篇以springboot-12-resttemple模块为demo讲解(代码已上传)

?

service创建

controller层(包含增删改查等方法,供service调用)

测试类(分别调用service中方法):

@RunWith(SpringRunner.class)
@SpringBootTest
public class Springboot12ResttempleApplicationTests {
	@Test
	public void contextLoads() {
	}
	@Autowired
	ApiService apiService;
	@Test
	public void testGet(){
		apiService.getObjectByGet();
	}
	@Test
	public void testGet2(){
		apiService.getForEntityByGet();
	}
	@Test
	public void testPost(){
		apiService.getObjectByPost();
	}
	@Test
	public void testPut(){
		apiService.getObjectByPut();
	}
	@Test
	public void testDel(){
		apiService.getObjectByDel();
	}
}

知识汇总:

以get方法为例:发送一个GET请求,我们可以通过两种方式(第三种方式最后简单提下,但是是最灵活,最有用的一种,此篇暂不进行讨论)

1)以getForEntity的方式去请求

getForEntity的第一个参数为要调用的服务的地址,为ip/api/users?name={1}&age={2}

getForEntity第二个参数String.class表示返回的body类型是String

返回的ResponseEntity包含了响应体所映射成的对象

2) getForObject() 发送一个HTTP GET请求,返回的请求体将映射为一个对象

有时候我在调用服务提供者提供的接口时,可能需要传递参数,有两种不同的方式

可以用一个数字做占位符,最后是一个可变长度的参数,来一一替换前面的占位符

也可以前面使用name={name}这种形式,最后一个参数是一个map,map的key即为前边占位符的名字,map的value为参数值

其它三种

Post、put、Delete请求方式类似

POST请求 postForEntity和postForObject

PUT请求:restTemplate.put

DELETE请求:restTemplate.delete

在RestTemplate中,PUT\delete请求可以通过put、delete方法调用,这两者的参数和前面介绍的getForEntity方法的参数基本一致,只是put、delete方法没有返回值而已。

使用exchange指定调用方式

restTemplate.exchange(
 String url, 
 HttpMethod method,
 HttpEntity requestEntity, 
 Class responseType, 
 Object uriVariables[]
 )
说明:
1)url: 请求地址;
2)method: 请求类型(如:POST,PUT,DELETE,GET);
3)requestEntity: 请求实体,封装请求头,请求内容
4)responseType: 响应类型,根据服务接口的返回类型决定
5)uriVariables: url中参数变量值

这种方式因为是最灵活的一种,现在我们采用是这种方式调用,感兴趣的可以了解下。

End

代码下载:https://github.com/shinians/springboot-demos

下个栏目决定精心打磨,做出更加优质原创文章,SpringBoot专栏到此阶段性结束,谢谢陪伴

我在下个专栏等你,定不负众望,等你 @架构师速成记

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表