Java SpringBoot+vue+實(shí)戰(zhàn)項目詳解
1.《鋒迷商城》業(yè)務(wù)流程設(shè)計-接⼝規(guī)范
在企業(yè)項⽬開發(fā)中,當(dāng)完成項⽬的需求分析、功能分析、數(shù)據(jù)庫分析與設(shè)計之后, 項⽬組就會按照項⽬中的功能進(jìn)⾏開發(fā)任務(wù)的分配
1.1 前后端分離與單體架構(gòu)流程實(shí)現(xiàn)的區(qū)別
單體架構(gòu):⻚⾯和控制之間可以進(jìn)⾏跳轉(zhuǎn),同步請求控制器,流程控制由控制器來完成 前后端分離架構(gòu):前端和后端分離開發(fā)和部署,前端只能通過異步向后端發(fā)送請求, 后端只負(fù)責(zé)接收請求及參數(shù)、處理請求、返回處理結(jié)果,但是后端并不負(fù)責(zé)流程控制, 流程控制是由前端完成
1.1.1單體架構(gòu)
1.1.2 前后端分離架構(gòu)
1.2 接口介紹
1.2.1接口概念
狹義的理解:就是控制器中可以接受⽤戶請求的某個⽅法 應(yīng)⽤程序編程接⼝,簡稱API,就是軟件系統(tǒng)不同組成部分銜接的約定
1.2.2接口規(guī)范
參考:《鋒迷商城》后端接⼝說明
1.3 Swagger
前后端分離開發(fā),后端需要編寫接⼝說明⽂檔,會耗費(fèi)⽐較多的時間 swagger是⼀個⽤于⽣成服務(wù)器接⼝的規(guī)范性⽂檔、并且能夠?qū)?#12061;進(jìn)⾏測試的⼯具
1.3.1作用
⽣成接⼝說明⽂檔對接⼝進(jìn)⾏測試
1.3.2 Swagger整合
在api⼦⼯程添加依賴(Swagger2 \ Swagger UI)
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
在api⼦⼯程創(chuàng)建swagger的配置(Java配置⽅式)
@Configuration @EnableSwagger2 public class SwaggerConfig { /*swagger會幫助我們⽣成接⼝⽂檔 * 1:配置⽣成的⽂檔信息 * 2: 配置⽣成規(guī)則*/ /*Docket封裝接⼝⽂檔信息*/ @Bean public Docket getDocket(){ //創(chuàng)建封⾯信息對象 ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder(); apiInfoBuilder.title("《鋒迷商城》后端接⼝說明") .description("此⽂檔詳細(xì)說明了鋒迷商城項⽬后端接⼝規(guī)范....") .version("v 2.0.1") .contact( new Contact("亮哥","www.liangge.com","liangge@wang.com") ); ApiInfo apiInfo = apiInfoBuilder.build(); Docket docket = new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo) //指定⽣成的⽂檔中的封⾯信息:⽂檔標(biāo)題、版本、作者 .select() .apis(RequestHandlerSelectors.basePackage("com.qfedu.fmmall.controller")) .paths(PathSelectors.any()) .build(); return docket; } }
測試:
啟動SpringBoot應(yīng)⽤,訪問:http://localhost:8080/swagger-ui.html
1.3.3 Swagger注解說明
1.swagger提供了⼀套注解,可以對每個接⼝進(jìn)⾏詳細(xì)說明
2.@Api 類注解,在控制器類添加此注解,可以對控制器類進(jìn)⾏功能說明
@Api(value = "提供商品添加、修改、刪除及查詢的相關(guān)接⼝",tags = "商品管理")
3.@ApiOperation ⽅法注解:說明接⼝⽅法的作⽤
4.@ApiImplicitParams 和 @ApiImplicitParam ⽅法注解,說名接⼝⽅法的參數(shù)
5.@ApiModel 和 @ApiModelProperty 當(dāng)接⼝參數(shù)和返回值為對象類型時,在實(shí)體類中添加注解說明
6.@ApiIgnore 接⼝⽅法注解,添加此注解的⽅法將不會⽣成到接⼝⽂檔中
1.3.4 Swagger-ui 插件
導(dǎo)入插件依賴
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency>
1.4 RESTful
1.前后端分離開發(fā)的項⽬中,前后端之間是接⼝進(jìn)⾏請求和響應(yīng),后端向前端提供請求時就要對外暴露⼀個URL;URL的設(shè)計不能是隨意的,需要遵從⼀定的設(shè)計規(guī)范——RESTful
RESTful 是⼀種Web api的標(biāo)準(zhǔn),也就是⼀種url設(shè)計⻛格/規(guī)范 每個URL請求路徑代表服務(wù)器上的唯⼀資源 傳統(tǒng)的URL設(shè)計: http://localhost:8080/goods/delete?goodsId=1 商品1 http://localhost:8080/goods/delete?goodsId=2 商品2 RESTful設(shè)計: http://localhost:8080/goods/delete/1 商品1 http://localhost:8080/goods/delete/2 商品2 @RequestMapping("/delete/{gid}") public ResultVO deleteGoods(@PathVariable("gid") int goodsId){ System.out.println("-----"+goodsId); return new ResultVO(10000,"delete success",null); }
2.使⽤不同的請求⽅式表示不同的操作
SpringMVC對RESTful⻛格提供了很好的⽀持,在我們定義⼀個接⼝的URL時,可以通 過@RequestMapping(value="/{id}",method=RequestMethod.GET) 形式指定請求 ⽅式,也可使⽤特定請求⽅式的注解設(shè)定URL @PostMapping("/add") @DeleteMapping("/{id}") @PutMapping("/{id}") @GetMapping("/{id}") post 添加. get 查詢. put 修改. delete 刪除. option (預(yù)檢).
3.接⼝響應(yīng)的資源的表現(xiàn)形式采⽤JSON(或者XML)
4.在控制類或者每個接⼝⽅法添加 @ResponseBody 注解將返回的對象格式為json
5.或者直接在控制器類使⽤ @RestController 注解聲明控制器
6.前端(Android\ios\pc)通過⽆狀態(tài)的HTTP協(xié)議與后端接⼝進(jìn)⾏交互
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Spring?Boot?集成Redisson實(shí)現(xiàn)分布式鎖詳細(xì)案例
這篇文章主要介紹了Spring?Boot?集成Redisson實(shí)現(xiàn)分布式鎖詳細(xì)案例,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08springboot掃碼登錄的簡單實(shí)現(xiàn)
本文主要介紹基于SpringBoot + Vue + Android實(shí)現(xiàn)的掃碼登錄,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09三步輕松實(shí)現(xiàn)Java的SM2前端加密后端解密
SM2算法和RSA算法都是公鑰密碼算法,SM2算法是一種更先進(jìn)安全的算法,在我們國家商用密碼體系中被用來替換RSA算法,這篇文章主要給大家介紹了關(guān)于如何通過三步輕松實(shí)現(xiàn)Java的SM2前端加密后端解密的相關(guān)資料,需要的朋友可以參考下2024-01-01Java如何調(diào)用TSC打印機(jī)進(jìn)行打印詳解
這篇文章主要給大家介紹了關(guān)于Java如何調(diào)用TSC打印機(jī)進(jìn)行打印的相關(guān)資料,文中介紹了三種方法,分別是兩種后臺打印以及JS打印 ,三種方法都給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧2018-07-07如何使用Spring Validation優(yōu)雅地校驗參數(shù)
這篇文章主要介紹了如何使用Spring Validation優(yōu)雅地校驗參數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07基于Spring概念模型:PathMatcher 路徑匹配器
這篇文章主要介紹了Spring概念模型:PathMatcher 路徑匹配器,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Springboot 1.5.7整合Kafka-client代碼示例
這篇文章主要介紹了Springboot 1.5.7整合Kafka-client代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10