專案已更新至2.0.0 Beta 檢視更新內容
簡介
這是一個基於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, @RequestBody sthPosted) {
// 根據ID判斷許可權
}
複製程式碼
更新內容:
- 更加詳細全面的功能文件
- 重構部分程式碼
- 新增更多的異常接管
- 新增自動插入建立與更新日期功能(基於MybatisPlus 特性)
- 優化程式碼結構,將功能性的部分模組化,便於後期的維護或升級為 SpringCloud 專案
- 增強@Auth 註解的程式碼健壯性