springboot 环境搭建不多讲,直接代码
配置
在启动类里加入如下配置
@Autowired
private RestTemplateBuilder builder;
// 使用RestTemplateBuilder来实例化RestTemplate对象,spring默认已经注入 RestTemplateBuilder
@Bean
public RestTemplate restTemplate() {
return builder.build();
}
接下里是controller类里注入RestTemplate
@Autowired
private RestTemplate restTemplate;
代码测试
这里看一下,底下用来测试的实体类
@Data
@Component
public class Device {
private Integer id;
private String type;
private String manufactor; //生产厂家
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss+0800",timezone = "GMT+8:00")
private Date registerTime;
}
如下是详细的增删改查的调用,前面的path变量是我设置一个rest路径,这里自行改
/*
查询某个设备信息
*/
@GetMapping("/getDevice/{id}")
public String getDevice(@PathVariable int id){
String forObject = restTemplate.getForObject(path+"/device/"+ id +"?at=asILk9y2JB4bxh311DIKMr2Oaif1L6pn", String.class);
return forObject;
}
/*
http://127.0.0.1:8181/cxf/device?at=Jshb9jiOa4hi240POyOP58g4OHHBQ2sF
添加设备 post 请求
*/
@PostMapping("/addDevice")
public String addDevice(@Valid Device device){
Device body = restTemplate.postForEntity(path+"/device?at=asILk9y2JB4bxh311DIKMr2Oaif1L6pn",
device, Device.class).getBody();
return body.toString();
}
/*
修改
*/
@PutMapping("/updateDevice")
public String updateDevice(@Valid Device device){
restTemplate.put(path+"/cxf/device/"+ device.getId() +"?at=asILk9y2JB4bxh311DIKMr2Oaif1L6pn",device);
return "修改成功";
}
/*
删除
*/
@DeleteMapping("/delDevice/{id}")
public String delDevice(@PathVariable int id){
restTemplate.delete(path+"/device/"+ id +"?at=asILk9y2JB4bxh311DIKMr2Oaif1L6pn");
return "删除成功";
}
postman请求参数配置
LZ用的是postman测试,顺便贴一下post请求和put请求的参数设置,用很多种形式,我这里只是随便选了一种
put请求
post请求
headers 设置,这里LZ2种请求都是一样