当前位置:网站首页>RestTemplate工具类
RestTemplate工具类
2022-08-11 07:51:00 【杨小熊的笔记】
RestTemplate工具类
RestTemplateUtils工具类代码:
package com.example.demo.utils;
import com.example.demo.entity.common.ResultVo;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@Component
public class RestTemplateUtils {
@Resource
private RestTemplate restTemplate;
public <T> ResultVo<T> get(String url, ObjectParameterizedTypeReference<T> responseType) {
return http(url, HttpMethod.GET, null, responseType);
}
public <T> ResultVo<T> post(String url, Object request, ObjectParameterizedTypeReference<T> responseType) {
return http(url, HttpMethod.POST, request, responseType);
}
public <T> ResultVo<T> http(String url, HttpMethod httpMethod, Object request, ObjectParameterizedTypeReference<T> responseType) {
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<Object> requestData = new HttpEntity<>(request, httpHeaders);
return restTemplate.exchange(url, httpMethod, requestData, responseType).getBody();
}
public static class ObjectParameterizedTypeReference <T> extends ParameterizedTypeReference<ResultVo<T>> {
}
}
验证:
package com.example.demo.controller;
import com.example.demo.entity.Book;
import com.example.demo.entity.EmployeeVo;
import com.example.demo.entity.common.ResultVo;
import com.example.demo.exception.DemoException;
import com.example.demo.service.IHelloService;
import com.example.demo.utils.RestTemplateUtils;
import com.example.demo.utils.ResultVoUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@Api("Hello 测试接口")
@RequestMapping(value = "hello", produces = MediaType.APPLICATION_JSON_VALUE)
public class HelloController {
private static final Logger LOGGER = LoggerFactory.getLogger(HelloController.class);
@Resource
private RestTemplateUtils restTemplateUtils;
@GetMapping(value = "/request-get")
public ResultVo<Void> requestGet() {
String url = "http://localhost:8888/employee/query/2";
ResultVo<EmployeeVo> resultVo = restTemplateUtils.get(url,
new RestTemplateUtils.ObjectParameterizedTypeReference<>());
LOGGER.info("code: {}", resultVo.getCode());
return ResultVoUtils.success(null);
}
@GetMapping(value = "/request-post")
public ResultVo<Void> requestPost() {
Book book = new Book();
book.setAuthor("吴军");
book.setPublisher("人民邮电出版社");
book.setName("数学之美");
String url = "http://localhost:8888/v1/book/one-book";
ResultVo<Book> resultVo = restTemplateUtils.post(url,
book,
new RestTemplateUtils.ObjectParameterizedTypeReference<>());
LOGGER.info("code: {}", resultVo.getCode());
return ResultVoUtils.success(null);
}
}
ResultVo请参考: 6. 返回统一的Json格式
SpringBoot 学习笔记
Demo 源代码 GitHub地址
1. HelloWorld
2. logback 日志配置
3. 返回 Json 串
4. Tomcat 部署
5. Swagger-ui
6. 返回统一的Json格式
7. 处理全局异常
8. GsonUtils 工具类
9. 多环境部署
10. 集成数据库
11. RestTemplate工具类
边栏推荐
- 高德能力API
- 3.1-分类-概率生成模型
- oracle数据库中列转行,列会有变化
- 8、Mip-NeRF
- JRS303-数据校验
- 2022 China Soft Drink Market Insights
- string类接口介绍及应用
- tf.reduce_mean() and tf.reduce_sum()
- Square, multi-power, square root calculation in Tf
- About # SQL problem: how to set the following data by commas into multiple lines, in the form of column display
猜你喜欢
随机推荐
4.1 - Support Vector Machines
Decrement operation in tf; tf.assign_sub()
机器学习(三)多项式回归
C语言-结构体
The softmax function is used in TF;
【43. 字符串相乘】
Swagger简单使用
CIKM 2022 AnalytiCup Competition: Federal Heterogeneous Task Learning
tf.reduce_mean()与tf.reduce_sum()
1081 检查密码 (15 分)
【云原生】云原生在网络安全领域的应用
测试用例很难?有手就行
1096 大美数 (15 分)
1.1-Regression
少年成就黑客,需要这些技能
麒麟V10系统打包Qt免安装包程序
1.1-回归
1071 Small Gamble (15 points)
【实战系列】OpenApi设计规范
初级软件测试工程师笔试试题,你知道答案吗?



![[C语言] sscanf如何实现sscanf_s?](/img/aa/1060c8fd22b09bd6509f8bc41b316e.png)





