统一返回格式如下
{
"code": 200,
"message": "成功",
"data": [
{
"id": 2,
"name": "欧阳老师",
"intro": "高级讲师"
}
],
"ok": true
}
创建统一返回结果类
package com.ssm.ggkt.result;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author shaoshao
* @version 1.0
* @date 2022/10/9 19:52
* 统一返回结果类
*/
@Data
@NoArgsConstructor
public class Result<T> {
private Integer code; // 状态码
private String message; // 返回状态信息 (成功 失败)
private T data; // 返回数据
// 成功方法
public static <T> Result<T> ok(T data) {
Result<T> result = new Result<>();
if (data != null){
result.setData(data);
}
result.setCode(200);
result.setMessage("成功");
return result;
}
// 失败方法
public static <T> Result<T> fail(T data) {
Result<T> result = new Result<>();
if (data != null){
result.setData(data);
}
result.setCode(201);
result.setMessage("失败");
return result;
}
public Result<T> message(String message){
this.setMessage(message);
return this;
}
public Result<T> code(Integer code){
this.setCode(code);
return this;
}
}
修改controller返回结果
@Api(tags = "讲师管理接口")
@RestController
@RequestMapping(value="/admin/vod/teacher")
public class TeacherController {
@Autowired
private TeacherService teacherService;
// http://localhost:8301/admin/vod/teacher/findAll
//1 查询所有讲师
@ApiOperation("查询所有讲师")
@GetMapping("findAll")
public Result findAllTeacher() {
//调用service方法
List<Teacher> list = teacherService.list();
return Result.ok(list).message("查询数据成功");
}
// remove/1
//2 逻辑删除讲师
@ApiOperation("逻辑删除讲师")
@DeleteMapping("remove/{id}")
public Result removeTeacher(@ApiParam(name = "id", value = "ID", required = true)
@PathVariable Long id) {
boolean isSuccess = teacherService.removeById(id);
if(isSuccess) {
return Result.ok(null);
} else {
return Result.fail(null);
}
}
}
使用更好的方法统一返回结果
创建结果类
import lombok.Getter;
/**
* 统一返回结果状态信息类
*
*/
@Getter
public enum ResultCodeEnum {
SUCCESS(200,"成功"),
FAIL(201, "失败"),
SERVICE_ERROR(2012, "服务异常"),
DATA_ERROR(204, "数据异常"),
ILLEGAL_REQUEST(205, "非法请求"),
REPEAT_SUBMIT(206, "重复提交"),
LOGIN_AUTH(208, "未登陆"),
PERMISSION(209, "没有权限"),
PHONE_CODE_ERROR(211, "手机验证码错误"),
MTCLOUD_ERROR(210, "直播接口异常"),
COUPON_GET(220, "优惠券已经领取"),
COUPON_LIMIT_GET(221, "优惠券已发放完毕"),
FILE_UPLOAD_ERROR( 21004, "文件上传错误"),
FILE_DELETE_ERROR( 21005, "文件刪除错误"),
VOD_PALY_ERROR(209, "请购买后观看"),;
private Integer code;
private String message;
private ResultCodeEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
创建结果类
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 全局统一返回结果类
*
*/
@Data
@ApiModel(value = "全局统一返回结果")
public class Result<T> {
@ApiModelProperty(value = "返回码")
private Integer code;
@ApiModelProperty(value = "返回消息")
private String message;
@ApiModelProperty(value = "返回数据")
private T data;
public Result(){}
public static <T> Result<T> build(T body, Integer code, String message) {
Result<T> result = new Result<T>();
if (body != null) {
result.setData(body);
}
result.setCode(code);
result.setMessage(message);
return result;
}
public static<T> Result<T> ok(){
return Result.ok(null);
}
/**
* 操作成功
* @param data baseCategory1List
* @param <T>
* @return
*/
public static<T> Result<T> ok(T data){
return build(data,200,"成功");
}
public static<T> Result<T> fail(){
return Result.fail(null);
}
/**
* 操作失败
* @param data
* @param <T>
* @return
*/
public static<T> Result<T> fail(T data){
return build(data, 201,"失败");
}
public Result<T> message(String msg){
this.setMessage(msg);
return this;
}
public Result<T> code(Integer code){
this.setCode(code);
return this;
}
}