SpringMVC 接口设计

请求方式和参数注解可以自由组合。

@RequestParam

获取 query 参数。

1
2
3
4
5
// name 参数需要和 GET 请求中 query 参数的 key 匹配
@GetMapping("/get")
public String queryParam(@RequestParam("name") String name) {
return name;
}

@PathVariable

获取 path 参数。

1
2
3
4
5
// name 参数需要和 GET 请求中 path 匹配
@GetMapping("/path/{name}")
public String pathParam(@PathVariable("name") String name) {
return name;
}

@RequestBody

获取 body 参数。

1
2
3
4
5
// 请求体携带的参数和 req 属性匹配
@PostMapping("/body")
public UserReq body(@RequestBody UserReq req) {
return req;
}

最佳实践

  1. 不要使用 @RequestBody 来接收 String 类型的参数;
1
2
3
4
@PostMapping("/wrong")
public String wrong(@RequestBody String name) {
return name;
}
  1. 不要使用 Get 方式来接收 @RequestBody 请求;

代码

here