1. 程式人生 > >SpringBoot2.1腳手架(種子)專案

SpringBoot2.1腳手架(種子)專案

專案地址:github.com/ocubexo/spr…

簡介

這是一個基於SpringBoot 2.1.1 RELEASE,用於搭建RESTful API工程的腳手架,只需三分鐘你就可以開始編寫業務程式碼,不再煩惱於構建專案與風格統一。

快速開始

  1. 構建資料庫
  2. 執行/src/test下的CodeGenerator.java進行程式碼生成
  3. 開始編寫業務程式碼

內建功能與使用方法

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判斷許可權
}
複製程式碼