springboot中后端返回數據給前端的設計模式


后端數據都是以json的形式給前端返回,一般都是通過@ResponseBody來進行返回.每次返回都要重新格式化一下json的格式.如果接受請求的方法多了,那么這種返回方式無疑是效率很低的.那么就需要一個類來吧這些返回的格式統一管理起來.

可以定義一個Result類,用來專門管理返回數據的:

@Data public class Result<T> { private int code;  //返回狀態碼 private String msg;  //返回的message private T data;    //返回的數據 private Result(T data) { this.code = 0; this.msg = "success"; this.data = data; } private Result(CodeMsg msg) { if (msg == null) { return; } this.code = msg.getCode(); this.msg = msg.getMsg(); } /** * 失敗的時候調用 */
    public static <T> Result<T> error(CodeMsg msg) { return new Result<T>(msg); } /** *成功的時候調用 */
    public static <T> Result<T> success(T data) { return new Result<T>(data); } }

其中CodeMsg封裝了具體的錯誤信息:

@Data public class CodeMsg { private int code; private String msg; private CodeMsg(int code, String msg) { this.code = code; this.msg = msg; } public CodeMsg fillArgs(Object... args) {  //帶自定義格式化參數的錯誤信息 int code = this.code; String message = String.format(this.msg, args); return new CodeMsg(code,message); } /** * 通用異常 */
    public static CodeMsg SUCCESS = new CodeMsg(0, "SUCESS"); public static CodeMsg SERVER_ERROR = new CodeMsg(500100, "服務端異常"); public static CodeMsg BIND_ERROR = new CodeMsg(500101, "參數校驗異常:%s"); /** * 登錄模塊5002XX */
    public static final CodeMsg PASSWORD_EMPTY = new CodeMsg(500211, "密碼不能為空"); public static final CodeMsg MOBILE_EMPTY = new CodeMsg(500211, "手機號不能為空"); public static final CodeMsg MOBILE_ERROR = new CodeMsg(500211, "手機號格式錯誤"); public static final CodeMsg USER_NOT_EXITS = new CodeMsg(500211, "用戶不存在"); public static final CodeMsg PASSWORD_ERROR = new CodeMsg(500211, "密碼錯誤"); }

這樣在后端返回的時候,只需要給定CodeMsg里面的靜態常量就可以了.根據自己需要進行定義.

return Result.success(true);
return Result.error(CodeMsg.SERVER_ERROR)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM