1.Get Path方式:参数放地址栏(只带value值的),适用于get请求参数比较少,参数类型是基本类型的情况。
后台代码如下(参数前面加@PathVariable注解):
@GetMapping("/getForPath/{id}")
public String getForPath(@PathVariable Long id) {
return "id: " + id;
}
前端请求方式为(直接在路径后面接参数值):
http://127.0.0.1:8080/1t6/requestType/getForPath/666
postman示例:
2.Get Params方式1:请求参数放params上,后端接收用单个类型接收,适用于get请求参数比较少,参数类型是基本类型的情况。
后台代码如下(参数前面加@RequestParam注解):
@GetMapping("/getForParams1")
public String getForParams1(@RequestParam Long id, @RequestParam PlanTypeEnum planType) {
return "id: " + id + ", planType: " + planType;
}
前端请求方式为(在路径后面接参数key=value):
http://127.0.0.1:8080/1t6/requestType/getForParams1?id=666&planType=TRAIN
postman示例:
3.Get Params方式2:请求参数放params上,后端接收用封装对象接收,适用于get请求参数比较多,参数类型是有多种(可以处理时间类型加注解等)的情况。推荐
后台代码如下(参数封装对象前什么注解都不用加):
@GetMapping("/getForParams2")
public String getForParams2(RequestTypeVo vo) {
return "id: " + vo.getId() + ", planType: " + vo.getPlanType()+ ", time" + vo.getTime();
}
@Data
public class RequestTypeVo {
private Long id;
// 枚举
private PlanTypeEnum planType;
// 时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime time;
}
前端请求方式为(在路径后面接参数key=value):
http://127.0.0.1:8080/1t6/requestType/getForParams2?id=666&planType=TRAIN&time=2024-07-16 18:18:18
postman示例:
4.Post Body方式:请求参数放body上(这里用JSON格式为例),后端接收用封装对象接收,适用于post请求参数比较多,参数类型是有多种(可以处理时间类型加注解等)的情况。推荐
后台代码如下(参数封装对象前面加@RequestBody注解):
@PostMapping("/postForBody")
public String postForBody(@RequestBody RequestTypeVo vo) {
return "id: " + vo.getId() + ", planType: " + vo.getPlanType() + ", time" + vo.getTime();
}
@Data
public class RequestTypeVo {
private Long id;
// 枚举
private PlanTypeEnum planType;
// 时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime time;
}
前端请求方式为(在body里面放数据):
{
"id":666,
"planType":"TRAIN",
"time":"2024-07-16 18:18:18"
}
postman示例: