常用api返回协议Result封装

返回对象Result

@Data
public class Result<T> implements Serializable {
    private int code;
    private String msg;
    private T data;

    private Result(int code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    /**
     * 成功返回
     * @param data
     * @param <T>
     * @return
     */
    public static <T> Result<T> success(T data){
        return  new Result<T>(0,"success",data);
    }
    /**
     * 成功返回
     * @param <T>
     * @return
     */
    public static <T> Result<T> success(){
        return success(null);
    }

    /**
     * 失败返回
     * @param cm
     * @param <T>
     * @return
     */
    public static <T> Result<T> error(CodeMsg cm){
        return  new Result<T>(cm.getCode(),cm.getMsg(),null);
    }
    /**
     * 失败返回
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> Result<T> validationError(String msg){
        CodeMsg validationError = CodeMsg.VALIDATION_ERROR;
        String format = String.format(validationError.getMsg(), msg);
        return  new Result<T>(validationError.getCode(),format,null);
    }
    /**
     * 失败返回
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> Result<T> commError(String msg){
        CodeMsg validationError = CodeMsg.COMM_ERROR;
        String format = String.format(validationError.getMsg(), msg);
        return  new Result<T>(validationError.getCode(),format,null);
    }
}

错误提示封装

@Data
public class CodeMsg {
    private int code;
    private String msg;

    /**
     * 私有构造器
     * @param code
     * @param msg
     */
    private CodeMsg(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    /**
     * 通用错误返回
     */
    public static final CodeMsg SERVER_ERROR = new CodeMsg(60000,"服务器异常!");
    public static final CodeMsg VALIDATION_ERROR = new CodeMsg(60001,"参数效验错误:%s!");
    public static final CodeMsg BIZ_ERROR = new CodeMsg(60002,"业务异常:%s!");
}

使用

  • 正常返回
   @GetMapping("/applyNo")
    public Result applyNo(@RequestParam("applyType") Integer applyType) {
        String no = orgApplyService.createNo(applyType);
        return Result.success(MapUtil.builder("applyNo", no).map());
    }

  @PostMapping("save")
    public Result save(String applyNo,String commitment) {
        service.save(applyNo, commitment);
        return Result.success();
    }
  • 错误提示返回
  @PostMapping("save")
    public Result save(Param param) {
        if(param== null || StringUtils.isBlank(param.getName())){
            // 仅仅是举例说明返回哈
            return Result.error(CodeMsg.SERVER_ERROR);
        }
        servicesave(param);
        return Result.success();
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,871评论 6 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,804评论 1 32
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,124评论 0 3
  • 叮,手机响了,是邮件。这已经是被同一公众号拒稿的第四篇文章,我有种摔手机地冲动,气死我了。 我一边抱怨公众号编辑有...
    永子_新手阅读 3,146评论 0 0
  • 在生活中有时候会碰到有人找你寻求帮助,出于好心的帮助了别人后,可能会给同事朋友一种乐于助人的印象,但是也有可能被别...
    洗羊羊阅读 1,319评论 0 0