谷粒学院项目实战33——json统一返回数据

由于项目中不同的模块、前后端一般都不是同一个人编写的,不同的接口返回的数据类型不一致,导致编程很不方便,我们采用json来作为统一返回数据格式。json类型的数据格式一般是两种:对象、数组,在实际中一般是两种格式混合使用。一般json数据的格式没有固定格式,只要能够描述清楚数据的具体信息与状态,但一般包含状态码、返回消息、数据等,我们将本项目的返回数据格式统一如下。

{
"success": 布尔, //响应是否成功
"code": 数字, //响应码
"message": 字符串, //返回消息
"data": HashMap //返回数据,放在键值对中
}

下面具体来实现统一返回数据。

(1)在common下新建maven子模块common_utils.

(2)如下图所示目录结构新建接口Resultcode。

alt 在接口中存放状态码信息。

package com.wangzhou.commonutils;

public interface ResultCode {
    //状态码:成功
    public static Integer SUCCESS = 20000;
    //状态码:失败
    public static Integer ERROR = 20001;
}

在同一路径下,创建统一返回结果的类R。

// lombok的注解,自动生成getter,setter等
@Data
public class R {
    // swagger的注解
    @ApiModelProperty("是否成功")
    private boolean success;

    @ApiModelProperty("响应码")
    private Integer code;

    @ApiModelProperty("返回信息")
    private String message;

    @ApiModelProperty("返回数据")
    private Map<String, Object> data = new HashMap<String, Object>();

    //无参构造方法私有,其他类不可以创建该类的实例,只能使用其镜头方法
    private R() {
    }

    public static R ok() {
        R returnData = new R();
        returnData.setSuccess(true);
        returnData.setCode(ResultCode.SUCCESS);
        returnData.setMessage("成功");
        return returnData;
    }

    public static R error() {
        R returnData = new R();
        returnData.setSuccess(false);
        returnData.setCode(ResultCode.ERROR);
        returnData.setMessage("失败");
        return returnData;
    }

    // 方便链式编程,即编程时可以:R.ok().success()
    public R success(Boolean success) {
        this.success = success;
        return this;
    }

    public R code(Integer code) {
        this.code = code;
        return this;
    }

    public R message(String message) {
        this.message = message;
        return this;
    }

    public R data(String key, Object value) {
        this.data.put(key, value);
        return this;
    }

    public R data(Map<String, Object> data) {
        this.setData(data);
        return this;
    }
}
java全栈日日学 文章被收录于专栏

java全栈每日必学,不要高估自己一年能做的事,不要低估自己十年能做的事

全部评论

相关推荐

我的名字是句号:接好运
点赞 评论 收藏
分享
昨天 18:20
电子科技大学 C++
Aki-Tomoya:7点下班我吃
投递字节跳动等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务