• 统一返回结果集


    1.

    查看统一返回结果的信息:一般最少4个

    Success   // 是否正确 boolean

    Message // 返回的消息

    Code // 状态码

    Data // 数据的

    2.具体步骤

    1、 先创建一个枚举,创建返回成功和失败的变量;

    2、 创建返回对象类;

    a) 建议要有一个OK的方法,error的方法方便调用;

    b) 自定义的message,success,code,data的方法

     

    3.枚举类例子如下:

    @Getter
    public enum ResultCodeEnum {

    SUCCESS(true, 20000,"成功"),
    UNKNOWN_REASON(false, 20001, "未知错误"),
    BAD_SQL_GRAMMAR(false, 21001, "sql语法错误"),
    JSON_PARSE_ERROR(false, 21002, "json解析异常"),
    PARAM_ERROR(false, 21003, "参数不正确"),
    FILE_UPLOAD_ERROR(false, 21004, "文件上传错误"),
    EXCEL_DATA_IMPORT_ERROR(false, 21005, "Excel数据导入错误");

    private Boolean success;
    private Integer code;
    private String message;
    private ResultCodeEnum(Boolean success, Integer code, String message) {
    this.success = success;
    this.code = code;
    this.message = message;
    }
    }

    4.统一返回对象类 例子如下:

    @Data
    @ApiModel(value = "全局统一返回结果")
    public class R {

    @ApiModelProperty(value = "是否成功")
    private Boolean success;

    @ApiModelProperty(value = "返回码")
    private Integer code;

    @ApiModelProperty(value = "返回消息")
    private String message;

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

    private R(){}

    public static R ok(){
    R r = new R();
    r.setSuccess(ResultCodeEnum.SUCCESS.getSuccess());
    r.setCode(ResultCodeEnum.SUCCESS.getCode());
    r.setMessage(ResultCodeEnum.SUCCESS.getMessage());
    return r;
    }

    public static R error(){
    R r = new R();
    r.setSuccess(ResultCodeEnum.UNKNOWN_REASON.getSuccess());
    r.setCode(ResultCodeEnum.UNKNOWN_REASON.getCode());
    r.setMessage(ResultCodeEnum.UNKNOWN_REASON.getMessage());
    return r;
    }
    public static R setResult(ResultCodeEnum resultCodeEnum){
    R r = new R();
    r.setSuccess(resultCodeEnum.getSuccess());
    r.setCode(resultCodeEnum.getCode());
    r.setMessage(resultCodeEnum.getMessage());
    return r;
    }

    public R success(Boolean success){
    this.setSuccess(success);
    return this;
    }

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

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

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

    public R data(Map<String, Object> map){
    this.setData(map);
    return this;
    }
    }

    5.测试如下:

    /*
    * 查询方法
    * */
    @ApiOperation(value = "person1查询数据")
    @ResponseBody
    @GetMapping("/selectOnePerson/{id}")
    public R selectOnePerson(@ApiParam(name="id", value = "personID", required = true) @PathVariable("id") Integer id) {

    try {
    Person person = personServer.selectOne(id);
    return R.ok().data("person",person);
    } catch (Exception e) {
    return R.error();
    }
    }

     以上测试就完成啦!

  • 相关阅读:
    经典网络复现(0)多层感知机和lenet
    将自有数据集下yolov训练结果(*.weights) 在进行部署
    DL基础学习计划
    自有数据集上使用keras训练YOLOv3目标检测
    《基于深度学习的图像语义分割方法综述》阅读理解
    Hessian矩阵以及在血管增强中的应用—OpenCV实现
    QML官方例子Calculator初步解析
    human_pose_estimation_demo的再进一步研究(基于OpenPOSE)
    10年图像处理工程师学习图像处理的小结
    human_pose_estimation_demo的进一步研究(基于OpenPOSE)
  • 原文地址:https://www.cnblogs.com/liuyi13535496566/p/11626533.html
Copyright © 2020-2023  润新知