《SpringMVC参数》
目录
一、统一响应
前端请求后端接口,后端会响应数据,标准的响应体中应包含以下内容:
- code:状态码;
- msg:提示信息;
- data:结果数据。
案例一
package com.hpr.common;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* 统一响应体
*
* @param <T> 响应的数据类型
*/
@ApiModel("统一响应体")
public class Response<T> {
/**
* 状态码
*/
@ApiModelProperty("状态码")
private int code;
/**
* 提示信息
*/
@ApiModelProperty("提示信息")
private String msg;
/**
* 结果数据
*/
@ApiModelProperty("结果数据")
private T data;
public Response(int code, String msg) {
this.code = code;
this.msg = msg;
}
public Response(int code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
二、参数接受
Controller接受前端传来的参数主要有三种方式:
- 原生request、response:多用于文件流响应、文件下载操作;
- @RequestParam:接受单个参数;
- @RequestBody:接受请求体(对象)。
案例二(测试参数接受,省略Service层操作)
- com.hpr.controller.TestController
...
public class TestController {
...
@GetMapping("/getUserById")
@ApiOperation("根据账号查询指定用户信息")
public Response<String> getUserById(HttpServletRequest request, HttpServletResponse response) {
//原生request、response,多用于文件流响应、文件下载操作
return new Response<>(200, "success", request.getParameter("userId"));
}
@GetMapping("/deleteUserById")
@ApiOperation("删除用户信息")
public Response<Integer> deleteUserById(@ApiParam("账号") @RequestParam int userId) {
//@RequestParam,用于接受单个参数
return new Response<>(500, "failed", userId);
}
@PostMapping("/addUser")
@ApiOperation("添加用户信息")
public Response<User> addUser(@ApiParam("要添加的用户信息") @RequestBody User user) {
//@RequestBody,表示接受一个请求体,即一个对象
return new Response<>(200, "success", user);
}
}
- 启动测试。
执行结果
总结
重点
- 统一响应体类书写;
- 参数接受的三种方式。
难点
- 统一响应体的使用。