关于spring:精讲RestTemplate第5篇DELETEPUT等请求方法使用详解

本文是精讲RestTemplate第5篇,前篇的blog拜访地址如下:

  • 精讲RestTemplate第1篇-在Spring或非Spring环境下如何应用
  • 精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换
  • 精讲RestTemplate第3篇-GET申请应用办法详解
  • 精讲RestTemplate第4篇-POST申请办法应用详解

为了不便后续开发测试,首先介绍一个网站给大家。JSONPlaceholder是一个提供收费的在线REST API的网站,咱们在开发时能够应用它提供的url地址测试下网络申请以及申请参数。或者当咱们程序须要获取一些模仿数据、模仿图片时也能够应用它。

如果您浏览完本文章,感觉对您有帮忙,请帮忙点个赞,您的反对是我不竭的创作能源

一、RESTful格调与HTTP method

相熟RESTful格调的敌人,应该理解RESTful格调API应用HTTP method表白对资源的操作。

罕用HTTP办法 RESTful格调语义(操作)
GET 查问、获取数据
POST 新增、提交数据
DELETE 删除数据
PUT 更新、批改数据
HEAD 获取HTTP申请头数据
OPTIONS 判断URL提供的以后API反对哪些HTTP method办法

在后面的章节,我曾经为大家具体的介绍了RestTemplate的GET和POST的相干的应用办法,本节来为大家介绍DELETE、PUT、HEAD、OPTIONS。

二、应用 DELETE办法去删除资源

删除一个曾经存在的资源,应用RestTemplate的delete(uri)办法。该办法会向URL代表的资源发送一个HTTP DELETE办法申请。

@Test
void testDelete()  {
   String url = "http://jsonplaceholder.typicode.com/posts/1";
   restTemplate.delete(url);
}

在后面章节测试类的根底上,写如上代码的测试用例。下面代码含意为删除posts列表外面的第1个帖子。

二、应用PUT办法去批改资源

批改一个曾经存在的资源,应用RestTemplate的put()办法。该办法会向URL代表的资源发送一个HTTP PUT办法申请。

@Test
void testPut()  {
   // 申请地址
   String url = "http://jsonplaceholder.typicode.com/posts/1";

   // 要发送的数据对象(批改数据)
   PostDTO postDTO = new PostDTO();
   postDTO.setUserId(110);
   postDTO.setTitle("zimug 公布文章");
   postDTO.setBody("zimug 公布文章 测试内容");

   // 发送PUT申请
   restTemplate.put(url, postDTO);
}

下面代码RESTful格调语义是:批改posts列表外面的第1个帖子。

三、通用申请办法exchange办法

exchange办法是一个通用的办法,它能够发送GET、POST、DELETE、PUT等等HTTP办法申请。

  • 上面的两种形式发送GET申请成果是一样的
//应用getForEntity发送GET申请
ResponseEntity<PostDTO> responseEntity
            = restTemplate.getForEntity(url, PostDTO.class);
//应用exchange发送GET申请
ResponseEntity<PostDTO> responseEntity = restTemplate.exchange(url, HttpMethod.GET,
            null, PostDTO.class);
  • 上面的两种形式发送POST申请成果是一样的
// 应用postForEntity发送POST申请
ResponseEntity<String> responseEntity
            = restTemplate.postForEntity(url, postDTO, String.class);
// 应用exchange发送POST申请
ResponseEntity<String> responseEntity
            = restTemplate.exchange(url, HttpMethod.POST,null, String.class);
  • 上面的两种形式发送DELETE申请成果是一样的,只是一个有返回值,一个返回值为void
// 应用delete发送DELETE申请,返回值为void
restTemplate.delete(url);
// 应用exchange发送DELETE申请
ResponseEntity<String> result = restTemplate.exchange(url, HttpMethod.DELETE,null,String.class);

下面为大家举了几个用exchange()发送申请的例子,exchange()还能针对很多的HTTP method类型发送申请,是通用办法!

四、应用HEAD办法获取HTTP申请头数据

应用headForHeaders()API 获取某个资源的URI的申请头信息,并且只专一于获取HTTP申请头信息。

@Test
public void testHEAD()  {
   String url = "http://jsonplaceholder.typicode.com/posts/1";
   HttpHeaders httpHeaders  = restTemplate.headForHeaders(url);
   
   //断言该资源接口数据为JSON类型
   assertTrue(httpHeaders.getContentType()
               .includes(MediaType.APPLICATION_JSON));
   System.out.println(httpHeaders);
}

申请头信息输入打印后果如下

五、应用OPTIONS获取HTTP资源反对的method

下文代码应用optionsForAllow测试该URL资源是否反对GET、POST、PUT、DELETE,即增删改查。

@Test
public void testOPTIONS()  {
   String url = "http://jsonplaceholder.typicode.com/posts/1";
   Set<HttpMethod> optionsForAllow  = restTemplate.optionsForAllow(url);
   
   HttpMethod[] supportedMethods
               = {HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE};
   //测试该url资源是否反对GET、POST、PUT、DELETE,即增删改查
   assertTrue(optionsForAllow.containsAll(Arrays.asList(supportedMethods)));
}

欢送关注我的博客,外面有很多精品合集

  • 本文转载注明出处(必须带连贯,不能只转文字):字母哥博客。

感觉对您有帮忙的话,帮我点赞、分享!您的反对是我不竭的创作能源! 。另外,笔者最近一段时间输入了如下的精品内容,期待您的关注。

  • 《手摸手教你学Spring Boot2.0》
  • 《Spring Security-JWT-OAuth2一本通》
  • 《实战前后端拆散RBAC权限管理系统》
  • 《实战SpringCloud微服务从青铜到王者》
  • 《VUE深入浅出系列》

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理