规范化请求结果集

/**
* @author StormMa
* @Date 2017-03-21
*/

生命不息,奋斗不止!


之所以讲究规范会请求处理,就是将每次的后端处理结果封装成固定的格式去回送到前端,之于规范化的好处,就不甚枚举了。我们先看看代码实现吧!

定义结果集的规范
/**
 * <p>Created on 2017/3/15.</p>
 *
 * @author StormMa
 *
 * @Description: 对请求结果进行封装
 */
public class RequestResult<T> {

    /**
     * error code :错误是1、成功是0
     */
    private Integer code;

    /**
     * 要返回的数据
     */
    private T data;

    /**
     * 本次请求的说明信息
     */
    private String msg;

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    @Override
    public String toString() {
        return "RequestResult{" +
                "code=" + code +
                ", data=" + data +
                ", msg='" + msg + '\'' +
                '}';
    }
}
结果集封装
/**
 * <p>Created on 2017/3/15.</p>
 *
 * @author StormMa
 *
 * @Description: 封装请求结果的工具类
 */
public class ResultUtil {

    /**
     * 成功请求的结果封装
     * @param t
     * @param <T>
     * @return
     */
    public static <T> RequestResult<T> success(T t) {
        RequestResult<T> result = new RequestResult<>();
        result.setCode(0);
        result.setMsg("success");
        result.setData(t);
        return result;
    }

    /**
     * 成功请求的结果封装
     * @param <T>
     * @return
     */
    public static <T> RequestResult<T> success() {
        return success(null);
    }

    /**
     * 失败请求的结果封装
     * @param <T>
     * @return
     */
    public static <T> RequestResult<T> fail() {
        RequestResult<T> result = new RequestResult<>();
        result.setCode(1);
        result.setData(null);
        result.setMsg("fail");
        return result;
    }

    /**
     * 失败请求的结果封装
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> RequestResult<T> fail(String msg) {
        RequestResult<T> result = new RequestResult<>();
        result.setCode(1);
        result.setData(null);
        result.setMsg(msg);
        return result;
    }
}

举例
/**
 * <p>Created on 2017/3/21.</p>
 * 
 * @author StormMa
 * 
 * @Description: 使用规范化结果响应
 */
@RestController
@RequestMapping(value = "/test")
public class TestController {
    
    @Autowired
    private ITestService testService;
    
    @RequestMapping(value = "/{testId}")
    public RequestResult<Test> getTest(@PathVariable int testId) {
        Test test = testService.getTestById(testId);
        
        if (test != null) {
            return ResultUtil.success(test);
        }
        return ResultUtil.fail("不存在数据!");
    }
}

结束语

看到规范化请求响应的好处了吧,Controller里面的代码更加简洁明了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,843评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 一天一千字的坚持 今晚我们上了一节新闻传播学,老师说的话有的触动了我,就是作家也不是有天赋的,只是得益于他们持之...
    青青草木牛牛阅读 234评论 2 3
  • 最近在面试,当然,尽管提供了简历,第一个环节,仍是自我介绍。每天面试很多应聘人员,如果在短时间内,没有给予面试官感...
    许的阅读 686评论 0 1