美文网首页
响应信息设计(Result)

响应信息设计(Result)

作者: 蓝胖子的白日梦丶 | 来源:发表于2020-04-21 16:22 被阅读0次
通常情况下,大到系统与系统间的通信,小到控制器的返回,我们现在都是采用的json传输,但是单单传输需要的数据,往往不能达到对返回结果成功与否的判断,或是出现解析错误,这时候就需要制定一套标准的传输协议:
//成功状态下
{
    "code": "0",
    "msg": "",
    "data": {}
}
//失败状态下
{
    "status": "1",
    "msg": "失败的原因",
    "data": {}
}
以下为实体设计:
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 响应信息主体
 *
 * @param <T>
 */
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "响应信息主体")
public class Result<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 成功标记
     */
    private static Integer SUCCESS = 0;
    /**
     * 失败标记
     */
    private static Integer FAIL = 1;

    @Getter
    @Setter
    @ApiModelProperty(value = "返回标记:成功标记=0,失败标记=1")
    private int code;

    @Getter
    @Setter
    @ApiModelProperty(value = "返回信息")
    private String msg;


    @Getter
    @Setter
    @ApiModelProperty(value = "数据")
    private T data;

    public static <T> Result<T> ok() {
        return restResult(null, SUCCESS, null);
    }

    public static <T> Result<T> ok(T data) {
        return restResult(data, SUCCESS, null);
    }

    public static <T> Result<T> ok(T data, String msg) {
        return restResult(data, SUCCESS, msg);
    }

    public static <T> Result<T> fail() {
        return restResult(null, FAIL, null);
    }

    public static <T> Result<T> fail(String msg) {
        return restResult(null, FAIL, msg);
    }

    public static <T> Result<T> fail(T data) {
        return restResult(data, FAIL, null);
    }

    public static <T> Result<T> fail(T data, String msg) {
        return restResult(data, FAIL, msg);
    }

    private static <T> Result<T> restResult(T data, int code, String msg) {
        Result<T> apiResult = new Result<>();
        apiResult.setCode(code);
        apiResult.setData(data);
        apiResult.setMsg(msg);
        return apiResult;
    }
}

相关文章

网友评论

      本文标题:响应信息设计(Result)

      本文链接:https://www.haomeiwen.com/subject/gufpihtx.html