亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        SpringBoot統(tǒng)一封裝返回前端結(jié)果集

        在實(shí)際項(xiàng)目開發(fā)過程中、事實(shí)上我們經(jīng)常用@restcontroller注釋的方式,將相當(dāng)于將返回數(shù)據(jù)的基本形式統(tǒng)一為JSON格式的數(shù)據(jù)。但是,由于我們的項(xiàng)目可能是由很多人開發(fā)的,所以我們最好將返回的結(jié)果統(tǒng)一起來,這樣每個(gè)人都可以返回相同的數(shù)據(jù)格式,這不僅規(guī)范了代碼,也方便了前端人員調(diào)用,否則每個(gè)人都會按照自己的風(fēng)格編寫,代碼會變得非?;靵y。

        我們?nèi)绾畏庋b這個(gè)結(jié)果?我們應(yīng)該注意返回到前端的數(shù)據(jù)中包含的信息。

        一般來說,首先,這次必須有一個(gè)code來表示接口的狀態(tài)。例如,0表示成功,1表示失敗,2表示必須傳遞錯(cuò)誤參數(shù),4表示系統(tǒng)異常,依此類推。這只是一個(gè)簡單的例子。許多人可能會有疑問。HTTP協(xié)議本身已經(jīng)有了相應(yīng)的返回代碼定義。 例如: 200表示成功, 500表示服務(wù)器錯(cuò)誤, 404表示找不到頁面。

        例如,200表示請求成功,但它不能描述請求中的業(yè)務(wù)結(jié)果。 例如,用戶名已經(jīng)存在,事實(shí)上,業(yè)務(wù)并不成功,但HTTP的結(jié)果肯定是200, 因此我們需要一個(gè)代碼來描述我們的業(yè)務(wù)狀態(tài)。

        除了代碼之外,還有一些提示信息,如操作成功、系統(tǒng)異常、用戶名已經(jīng)存在等,所以我們添加了一個(gè)message字段。

        然后還有我們的核心數(shù)據(jù)。例如,我根據(jù)ID獲取數(shù)據(jù)。此數(shù)據(jù)的具體內(nèi)容必須返回到前端,因此必須有數(shù)據(jù)。此數(shù)據(jù)使用什么類型?這種類型必須是多樣的,所以我們需要使用統(tǒng)一的父類,以便對象可以接收所有類型。當(dāng)然,我們可以使用通用的方法來方便操作。

        主要代碼展示:

        public class Result implements Serializable { private static final long serialVersionUID = -3960261604608758516L; private int code; private String msg; private T data; public static Result success() { return new Result(); } /** * 成功,默認(rèn)狀態(tài)碼,返回消息,自定義返回?cái)?shù)據(jù) * @param data 自定義返回?cái)?shù)據(jù) * @param 返回類泛型,不能為String * @return 通用返回Result */ public static Result success(T data) { return new Result(data); } /** * 成功,默認(rèn)狀態(tài)碼,自定義返回消息,返回?cái)?shù)據(jù) * @param msg 自定義返回消息 * @param data 自定義返回?cái)?shù)據(jù) * @param 返回類泛型 * @return 通用返回Result */ public static Result success(String msg, T data) { return new Result(msg, data); } /** * 成功,默認(rèn)狀態(tài)碼,自定義返回消息,無返回?cái)?shù)據(jù) * * @param msg 自定義返回消息 * @param 返回類泛型 * @return 通用返回Result */ public static Result success(String msg) { return new Result(msg); } /** * 失敗,默認(rèn)狀態(tài)碼,返回消息,無返回?cái)?shù)據(jù) * @param 返回類泛型 * @return 通用返回Result */ public static Result error() { return new Result(ResultCode.ERROR); } /** * 失敗,默認(rèn)狀態(tài)碼,自定義返回消息,無返回?cái)?shù)據(jù) * @param 返回類泛型 * @return 通用返回Result */ public static Result error(String msg) { return new Result(ResultCode.ERROR.getCode(), msg); } /** * 失敗,自定義狀態(tài)碼,返回消息,無返回?cái)?shù)據(jù) * @param code 自定義狀態(tài)碼 * @param msg 自定義返回消息 * @param 返回類泛型 * @return 通用返回Result */ public static Result error(int code, String msg) { return new Result(code, msg); } /** * 失敗,使用CodeMsg狀態(tài)碼,返回消息,無返回?cái)?shù)據(jù) * @param resultCode CodeMsg,參數(shù)如下: *

        code 狀態(tài)碼 *

        msg 返回消息 * @param 返回類泛型 * @return 通用返回Result */ public static Result error(ResultCode resultCode) { return new Result(resultCode); } /** * 成功構(gòu)造器,無返回?cái)?shù)據(jù) */ private Result() { this(ResultCode.SUCCESS); } /** * 成功構(gòu)造器,自定義返回?cái)?shù)據(jù) * @param data 返回?cái)?shù)據(jù) */ private Result(T data) { this(ResultCode.SUCCESS, data); } /** * 成功構(gòu)造器,自定義返回消息,無返回?cái)?shù)據(jù) * @param msg 返回消息 */ private Result(String msg) { this(ResultCode.SUCCESS.getCode(), msg); } /** * 構(gòu)造器,自定義狀態(tài)碼,返回消息 * @param code 狀態(tài)碼 * @param msg 返回消息 */ private Result(int code, String msg) { this.code = code; this.msg = msg; } /** * 成功構(gòu)造器,自定義返回信息,返回?cái)?shù)據(jù) * @param msg 返回信息 * @param data 返回?cái)?shù)據(jù) */ private Result(String msg, T data) { this(ResultCode.SUCCESS.getCode(), msg, data); } /** * 構(gòu)造器,自定義狀態(tài)碼,返回消息,返回?cái)?shù)據(jù) * @param code 狀態(tài)碼 * @param msg 返回消息 * @param data 返回?cái)?shù)據(jù) */ private Result(int code, String msg, T data) { this(code, msg); this.data = data; } /** * 構(gòu)造器,使用CodeMsg狀態(tài)碼與返回信息,自定義返回?cái)?shù)據(jù) * @param resultCode CodeMsg,參數(shù)如下: *

        code 狀態(tài)碼 *

        msg 返回消息 * @param data 返回?cái)?shù)據(jù) */ private Result(ResultCode resultCode, T data) { this(resultCode); this.data = data; } /** * 構(gòu)造器,使用CodeMsg狀態(tài)碼與返回信息 * @param resultCode CodeMsg,參數(shù)如下: *

        code 狀態(tài)碼 *

        msg 返回消息 */ private Result(ResultCode resultCode) { this(resultCode.getCode(), resultCode.getMsg()); } }復(fù)制代碼

        還需要定義幾個(gè)常見的錯(cuò)誤

        @Builderpublic class ResultCode implements Serializable { private static final long serialVersionUID = -6269841958947880397L; /** 狀態(tài)碼*/ private int code; /**狀態(tài)信息*/ private String msg; /** 默認(rèn)成功*/ public final static ResultCode SUCCESS = dispose(ResultCodeEnum.SUCCESS); /**默認(rèn)失敗*/ public final static ResultCode ERROR = dispose(ResultCodeEnum.ERROR); /**通用業(yè)務(wù)異常*/ public final static ResultCode BIZ_ERROR = dispose(ResultCodeEnum.BIZ_ERROR); /**文件超出最大限制*/ public final static ResultCode FILE_OUT_MAX = dispose(ResultCodeEnum.FILE_OUT_MAX); /**文件格式不正確*/ public final static ResultCode FILE_FORMAT_ERROR = dispose(ResultCodeEnum.FILE_FORMAT_ERROR); /** 參數(shù)錯(cuò)誤*/ public final static ResultCode PARAM_ERROR = dispose(ResultCodeEnum.PARAM_ERROR); /**Json解析異常*/ public final static ResultCode JSON_FORMAT_ERROR = dispose(ResultCodeEnum.JSON_FORMAT_ERROR); /** Sql解析異常*/ public final static ResultCode SQL_ERROR = dispose(ResultCodeEnum.SQL_ERROR); /**網(wǎng)絡(luò)超時(shí)*/ public final static ResultCode NETWORK_TIMEOUT = dispose(ResultCodeEnum.NETWORK_TIMEOUT); /** 未知的接口*/ public final static ResultCode UNKNOWN_INTERFACE = dispose(ResultCodeEnum.UNKNOWN_INTERFACE); /**請求方式不支持*/ public final static ResultCode REQ_MODE_NOT_SUPPORTED = dispose(ResultCodeEnum.REQ_MODE_NOT_SUPPORTED); /**系統(tǒng)異常*/ public final static ResultCode SYS_ERROR = dispose(ResultCodeEnum.SYS_ERROR); private static ResultCode dispose(ResultCodeEnum codeEnum) { return ResultCode.builder().code(codeEnum.getCode()).msg(codeEnum.getMsg()).build(); } public ResultCode(int code, String msg) { this.code = code; this.msg = msg; }}

        如果本文對你有幫助,別忘記給我個(gè)3 ,點(diǎn)贊,轉(zhuǎn)發(fā),評論,

        收藏 等于白嫖,點(diǎn)贊才是真情

        作者:java奧斯卡鏈接:https://juejin.cn/post/7107799410876088333

        鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年6月14日 12:30
        下一篇 2022年6月14日 12:30

        相關(guān)推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息