最近在做一個大型的J2EE項目,后端語言選擇了Java,理所當然的選擇了Spring,使用Spring MVC來做restful風格的api開發很是方便,Spring下面有很多子項目通過Springboot集成也很舒服。程序員都知道溝通很重要,實際項目中,往往是各自為戰,盡管使用的是相同的框架、工具,編寫的代碼卻千差萬別,為了統一基礎代碼風格,編寫了這個項目種子。
創新互聯專注于企業成都營銷網站建設、網站重做改版、禮縣網站定制設計、自適應品牌網站建設、H5網站設計、成都做商城網站、集團公司官網建設、成都外貿網站制作、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為禮縣等各大城市提供網站開發制作服務。
除此之外,在開發一個Web后端api項目時,通常都會經歷搭建項目、選擇依賴管理工具、引入基礎包依賴、配置框架等,為了加快項目的開發進度(早點下班)還需要封裝一些常用的類和工具,如標準的響應結構體封裝、統一異常處理切面、接口簽名認證、初始化運行方法、輪詢方法、api版本控制封裝、異步方法配置等。
每次開始一個類型的新項目,以上這些步驟又要重復一遍,雖然能夠將老項目拿過來刪刪減減達到目的,但還是很費時費力,還容易出問題。所以,可以利用面向對象的思想,抽取這類Web后端api項目的共同之處封裝成一個項目種子。以后再開發類似的項目,就能直接在這個項目種子上迭代,減少重復勞動。
項目地址:https://github.com/ocubexo/springboot-restful-starter
簡介
這是一個基于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, "
返回結果示例:
{ "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判斷權限 }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。
網站名稱:SpringBoot2.1RESTfulAPI項目腳手架(種子)項目
當前路徑:http://vcdvsql.cn/article0/peisio.html
成都網站建設公司_創新互聯,為您提供網站內鏈、面包屑導航、網站導航、網站維護、網站營銷、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯