美文网首页
常用api返回协议Result封装

常用api返回协议Result封装

作者: 零星恋雪 | 来源:发表于2019-08-24 17:07 被阅读0次

返回对象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();
    }

相关文章

  • 常用api返回协议Result封装

    返回对象Result 错误提示封装 使用 正常返回 错误提示返回

  • JavaLib | result 模块

    result是什么? result 是帮助 后端 API 开发者将接口返回统一化。 样式 返回是 json 字符串...

  • WebAPI服务返回值

    Web API 2 Action Result 返回值 void HttpResponseMessage IHtt...

  • 接口文档

    文档说明 接口请求域名为:http://tk.irolyun.com/api/ Api 返回结果对象Result ...

  • 12、Vue_封装API、插槽slot/v-slot

    一、封装API 一些常用的方法可以封装成API,然后进行调用 例子 :把之前的axios的一个请求封装成api1....

  • vue axios cdn 封装

    1.config.js 常用域名封装: 2.utils.js 常用的方法封装: 3.api.js axios接口...

  • Spring Cloud OpenFeign 自定义结果解码器

    我们在定义微服务接口的时候,通常会使用一个Result类进行封装,将提示信息,返回对象和状态码等内容封装到一起返回...

  • 枚举简介

    问题描述 1、Result封装返回消息,用String接收message存在的问题; 2、服务层暴露一个接口供其它...

  • Socket编程简介

    1. Socket 介绍 一个对TCP/IP协议进行封装了的API(调用接口),本质并不是协议HTTP协议底层就是...

  • iOS中的Socket的使用

    Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,...

网友评论

      本文标题:常用api返回协议Result封装

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