SpringBoot2.1腳手架(種子)專案
這是一個基於SpringBoot 2.1.1 RELEASE,用於搭建RESTful API工程的腳手架,只需三分鐘你就可以開始編寫業務程式碼,不再煩惱於構建專案與風格統一。
快速開始
- 構建資料庫
-
執行
/src/test
下的CodeGenerator.java
進行程式碼生成 - 開始編寫業務程式碼
內建功能與使用方法
RESTful風格Result生成器
1.成功且不帶資料的結果
// 不帶資料的成功結果 return new Result().success(); 複製程式碼
返回結果示例:
{ "code": 200, "message": "Success", "data": null } 複製程式碼
2.成功且帶返回資料的結果
return new Result().success("Hello,world"); // 當然你也可以返回物件或其他型別的資料 User user = new User(); return new Result().success(user); 複製程式碼
返回結果示例:
{ "code": 200, "message": "Success", "data": "Hello,world" } 複製程式碼
或者是:
{ "code": 200, "message": "Success", "data": { "name": "jack", "age": 20 } } 複製程式碼
3.錯誤結果:
// fail方法的引數(錯誤程式碼,錯誤資訊) return new Result().fail(10400, "登陸失敗,密碼錯誤"); // 你還可以自定義錯誤結果的code return new Result().fail(null, "未登入", 401); 複製程式碼
返回結果示例:
{ "code": 400, "message": "登陸失敗,密碼錯誤", "data": 10400 } 複製程式碼
或者:
{ "code": 401, "message": "未登入", "data": null } 複製程式碼
RESTful風格的異常接管
// 引數說明(錯誤資訊, 錯誤Code) throw new ServiceException("未登入", 401); // 你也可以返回錯誤程式碼 throw new ServiceException(10404, "伺服器維護中", 404); 複製程式碼
返回結果示例:
{ "code": 401, "message": "未登入", "data": null } 複製程式碼
或者:
{ "code": 404, "message": "伺服器維護中", "data": 10404 } 複製程式碼
基於JWT的認證機制
@Autowired private TokenService tokenService; // 生成Payload Map<String,Object> payload = new HashMap<String,Object>(); payload.put("id",1); // 生成Token tokenService.generate(TokenType.ACCESS, payload, 1); // 格式化Token String token = getYourToken(); tokenService.parse(token); // 返回的結果是一個Jwt物件,詳見JJWT文件 複製程式碼
Auth註解
Auth註解用於獲取當前使用者的Token中的userId,在獲取的同時會自動校驗使用者Token,若使用者未登入則會丟擲未登入的異常。
// 在controller中使用 @PostMapping("/user/1/edit") public Result edit(@Auth int userId, @ResponseBody sthPosted) { // 根據ID判斷許可權 } 複製程式碼