从零搭建 Spring Boot 后端框架开发
程序员文章站
2022-06-19 10:04:29
简介这一小节主要是为了,统一请求结果格式步骤在提倡前后端分离的当下,统一返回结果就显得尤其重要,在com.example.backend_template.utils下新增ResultData类package com.example.backend_template.utils;/** * @ClassName ResultData 封装结果集成统一的json样式 * @Description TODO * @Author L * @Date Create by 2020/7/2 */...
简介
这一小节主要是为了,统一请求结果格式
步骤
- 在提倡前后端分离的当下,统一返回结果就显得尤其重要,在com.example.backend_template.utils下新增ResultData类
package com.example.backend_template.utils; /** * @ClassName ResultData 封装结果集成统一的json样式 * @Description TODO * @Author L * @Date Create by 2020/7/2 */ public class ResultData<T> { // 信息状态码 private Integer code; // 提示信息 private String msg; // 返回的数据 private T Data; public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return Data; } public void setData(T data) { Data = data; } }
- 为了防止重复创建ResultData,set()值产生大量的重复代码,这里封装一个工具类,用于封装常用返回数据在com.example.backend_template.utils下新建ResultUtils类
package com.example.backend_template.utils; /** * @ClassName ResultUtils * @Description TODO * @Author L * @Date Create by 2020/7/2 */ public class ResultUtils { // 统一结果集对象 private static ResultData<Object> resultData = new ResultData<>(); /** * 成功时调用的函数 * * @param object 要返回的对象 * @return */ public static ResultData<Object> success(Object object) { resultData.setCode(0); resultData.setMsg("success"); resultData.setData(object); return resultData; } /** * 成功时,如果没有要返回的对象,调用此方法 * * @return */ public static ResultData<Object> success() { return success(null); } /** * 失败时调用的函数 * * @param code 要返回的状态码 * @param msg 要返回的信息 * @return */ public static ResultData<Object> fail(Integer code, String msg) { resultData.setCode(code); resultData.setMsg(msg); return resultData; } /** * 失败时调用的函数 * * @param code 要返回的状态码 * @param msg 要返回的信息 * @param object 要返回的具体错误信息 * @return */ public static ResultData<Object> fail(Integer code, String msg, Object object) { resultData.setCode(code); resultData.setMsg(msg); resultData.setData(object); return resultData; } }
- 定义常见的响应码枚举,可根据业务需求自行添加,在com.example.backend_template.constant下新建ResultCode类
package com.example.backend_template.constant; /** * @Description TODO * @Author L * @Date Create by 2020/7/2 */ public enum ResultCode { // 成功 SUCCESS(200), // 失败 FAIL(400), // 未认证(签名错误) UNAUTHORIZED(401), // 接口不存在 NOT_FOUND(404), // 服务器内部错误 INTERNAL_SERVER_ERROR(500); private int code; ResultCode(int code) { this.code = code; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } }
注:这里统一的返回结果,只能保证我们没有抛出异常的情况,统一返回结果,但是程序抛出异常后,返回结果将不再统一,此时我们需要全局异常处理,再统一返回数据,下面会写到
测试
这里可以把controller返回的数据放到ResultData<T>类的data下返回,之后会有演示,这里就不测试了
项目地址
项目介绍:从零搭建 Spring Boot 后端项目
代码地址:
下一篇
本文地址:https://blog.csdn.net/qq_22136439/article/details/107466974