一、使用统一的返回数据格式
据我了解到的,目前绝大多数公司已经开始使用前后端分离的模式进行项目开发。后端处理业务逻辑,返回数据,前端得到数据处理并展示。那么前后端就需要约定一个固定的数据格式,方便前端对数据的处理。
二、构建返回数据对象
我这里使用HashMap<String, Object>作为返回数据的结构。键值对的结构更加灵活。我这里使用了hutool的HttpStatus获取状态码。
package com.tianqicode.myquickframe.common.utils;
import cn.hutool.http.HttpStatus;
import java.util.HashMap;
import java.util.Map;
/**
* 返回数据
*
* @author tianqi
* @date 2020年9月23日 下午9:59:27
*/
public class R extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;
public R() {
put("code", HttpStatus.HTTP_OK);
put("msg", "success");
}
public static R error() {
return error(HttpStatus.HTTP_INTERNAL_ERROR, "未知异常,请联系管理员");
}
public static R error(String msg) {
return error(HttpStatus.HTTP_INTERNAL_ERROR, msg);
}
public static R error(int code, String msg) {
R r = new R();
r.put("code", code);
r.put("msg", msg);
return r;
}
public static R ok(String msg) {
R r = new R();
r.put("msg", msg);
return r;
}
public static R ok(Map<String, Object> map) {
R r = new R();
r.putAll(map);
return r;
}
public static R ok() {
return new R();
}
public R put(String key, Object value) {
super.put(key, value);
return this;
}
}
三、在Controller中使用数据返回对象
在控制器中试用一下试试。
package com.tianqicode.myquickframe;
import com.tianqicode.myquickframe.common.utils.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author wangtianqi
* @create 2020-09-17 13:36
*/
@RestController
@RequestMapping("/Hello")
public class HelloSpringBoot {
@GetMapping("/SpringBoot")
public R hello() {
return R.ok().put("hello", "Hello SpringBoot!");
}
}
直接使用postman请求测试一下