java中统一返回前端格式,统一结果处理返回

统一结果返回类

1. 定义方式一

为什么要使用统一结果?

1、大部分前后端项目采用 JSON 格式进行数据交互,定义一个统一的数据规范,有利于前后台的交互、以及信息处理。

2、Java后端开发项目时,需要给前端传一些数据,可以直接将一个 List 或者 Map 返回给前端,但是这样会显得很乱,并且有时候前端需要的不仅仅只是数据,可能还有一些错误码、错误信息等,这时就需要一种规范的数据格式传到前端。


返回格式的属性说明
  • success: true/false,是否响应成功,设置成 Boolean 类型。
  • code: 200/400/500等,响应状态码。设置成 Integer 类型。
  • message: 访问成功/系统异常等,状态码描述,设置成 String 类型。
  • data: 处理得数据,响应数据,设置成 HashMap 类型。

下面举出来一个 Spring Boot 项目中,通过接口返回给前端的结果格式示例:

// 举例:返回结果样式
{
   
   
  "success": true,
  "code": 200,
  "message": "查询用户列表",
  "data": {
   
   
    "itms": [
      {
   
   
        "id": "1",
        "username": "admin",
        "role": "ADMIN",
        "createTime": "2020-4-24T15:32:29",
        "modifiedTime": "2020-4-24T15:41:40"
      },{
   
   
        "id": "2",
        "username": "zhangsan",
        "role": "USER",
        "createTime": "2020-4-24T15:32:29",
        "modifiedTime": "2020-4-24T15:41:40"
      }
    ]
  }
}

那统一结果返回类如何定义
  • 构造器私有,不允许进行实例化,但提供静态方法:ok、error 返回一个实例

    • ok:返回一个 成功操作 的实例对象
    • error:返回一个 失败操作 的实例对象
  • 采用链式调用(即:方法返回对象为其本身,return this)----> 下面代码中涉及到

统一结果返回类,代码示例如下:

@Data
public class Result {
   
   
    private Boolean success;
    private Integer code;
    private String message;
    private Map<String, Object> data = new HashMap<>();
    
    // 默认私有构造器
    private Result(){
   
   
        
    }
    
    // 自定义构造器
    private Result(Boolean success, Integer code, String message){
   
   
        this.success = success;
        this.code = code;
        this.message = message;
    }
    
    
    
    // 返回一个默认的 成功操作 的实例对象,默认响应状态码 200
    public static Result ok(){
   
   
        // 使用 HttpStatus 的常量表示响应状态码,这个需要导入 httpcore 依赖
        return new Result(true, HttpStatus.SC_OK, "success");
    }
    
    // 返回一个自定义 成功操作 的实例对象
    public static Result ok(Boolean success,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小学鸡!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值