Springboot聯結萬物學習筆記--Springboot微服務基礎搭建篇(五)--SpringBoot統一介面返回的標準格式
阿新 • • 發佈:2021-07-02
部落格說明:撰寫部落格目的是在記錄自己所學知識、在工作中使用技術遇到的技術問題、一些技術感悟,因此避免不了涉及到和其他文章有相似之處。本文從作者自己的實踐中指出相關踩坑問題,著重指出學習過程中遇到的相關問題。如果存在相關侵權問題請聯絡博主刪除,同時有技術上的見解可以在評論去裡發出,會不定期回覆,謝謝。
gitee地址:https://gitee.com/woniurunfast/springbootwitheverything
01背景
在企業SpringBoot的日常開發中,一般都是需要統一返回介面型別以及異常型別,方便各服務之間的識別
02目標
1、定義自動返回類Result.java工具公共類已經經常會出現的返回提示
03封裝統一返回的Result類
package com.hkx.demo.common; import lombok.Data; @Data public class Result<T> { // 返回的編碼 private Integer code; // 返回的資料,資料型別N中, private T data; // 返回的資訊 private String message; private Result() { } public static <T> Result success(T data, String message) { Result r = new Result(); r.setCode(ResponseEnum.SUCCESS.getCode()); r.setData(data); r.setMessage(message == null ? ResponseEnum.SUCCESS.getMessage() : message); return r; } public static <T> Result success(T data) { return success(data, null); } public static Result fail(Integer code, String message) { Result r = new Result(); r.setCode(code); r.setData(null); r.setMessage(message); return r; } public static Result fail(ResponseEnum responseEnum) { Result r = new Result(); r.setCode(responseEnum.getCode()); r.setData(null); r.setMessage(responseEnum.getMessage()); return r; } }
04封裝統一列舉引用提示語
package com.hkx.demo.common; /** * @description: 統一返回的常量類 * 對內修改開放,對外修改關閉---列舉 */ public enum ResponseEnum { SUCCESS(200,"成功!"), WONIU_REG_USER_PASSWORD_CODE(401,"使用者名稱和密碼錯誤"), WONIU_REG_USER_PASSWORD_CONFIRM(402,"密碼和確認密碼不一致"); private Integer code; private String message; ResponseEnum(Integer code, String mesage){ this.code = code; this.message =mesage; } public Integer getCode() { return code; } public String getMessage() { return message; } }
05測試返回結果
建立控制層:
package com.hkx.demo.controller;
import com.hkx.demo.common.Result;
import com.hkx.demo.entity.WoNiu;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/select")
@Slf4j
public class ResultController {
@GetMapping("/getWoniu")
public Result getUser2(Integer id) {
WoNiu user = new WoNiu();
user.setId(1);
user.setHobby("swim");
user.setDesc("just for fun");
user.setType("happy");
return Result.success(user);
}
}
呼叫:
返回: