javascript
Springboot2 Swagger3 集成
文章目錄
- 一、默認(rèn)UI
- 1. 版本嘗鮮
- 2. 導(dǎo)入依賴
- 3. Swagger3Config配置類
- 4. Swagger3.0常用注解
- 4.Controller 層使用Swagger3注解例子
- 5.訪問(wèn)Swagger3接口文檔界面
- 6.Swagger3接口文檔界面展示
- 二、bootstrapUI
- 2.1. 導(dǎo)入依賴
- 2.2. 訪問(wèn)地址
一、默認(rèn)UI
1. 版本嘗鮮
Swagger3在Swagger2的基礎(chǔ)上進(jìn)行了部分升級(jí), 使用和Swagger2沒(méi)有多少區(qū)別。
一個(gè)重要的優(yōu)化是依賴的引入,由之前的多個(gè)依賴變更為一個(gè)依賴,跟隨springboot-starter風(fēng)格,同時(shí)引入了新的開(kāi)關(guān)注解 @EnableOpenApi 以代替@EnableSwagger2 。
因此,集成工作變得更加的簡(jiǎn)便了,必要工作只有兩個(gè),添加swagger3的starter依賴包,在springboot主程序類添加@EnableOpenApi開(kāi)關(guān)注解。
2. 導(dǎo)入依賴
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency></dependencies>3. Swagger3Config配置類
(必選)添加開(kāi)關(guān)注解@EnableOpenApi
package com.gblfy.common.config;import io.swagger.annotations.ApiOperation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket;/*** @author gblfy*/ //@EnableSwagger2 是 swagger2.0版本的注解 //swagger在3.0之后換成了@EnableOpenApi @Configuration @EnableOpenApi public class SwaggerConfig {@Beanpublic Docket createRestApi(){return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();}private ApiInfo apiInfo(){return new ApiInfoBuilder().title("Swagger3接口文檔").description("適用于前后端分離統(tǒng)一的接口文檔").version("1.0").build();} }4. Swagger3.0常用注解
@Api:用在請(qǐng)求的類上,表示對(duì)類的說(shuō)明
??tags=“說(shuō)明該類的作用,可以在UI界面上看到的注解”
??value=“該參數(shù)沒(méi)什么意義,在UI界面上也看到,所以不需要配置”
@ApiOperation:用在請(qǐng)求的方法上,說(shuō)明方法的用途、作用
??value=“說(shuō)明方法的用途、作用”
??notes=“方法的備注說(shuō)明”
@ApiImplicitParams:用在請(qǐng)求的方法上,表示一組參數(shù)說(shuō)明
??@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一個(gè)請(qǐng)求參數(shù)的各個(gè)方面
????name:參數(shù)名
????value:參數(shù)的漢字說(shuō)明、解釋
????required:參數(shù)是否必須傳
??? paramType:參數(shù)放在哪個(gè)地方
????· header --> 請(qǐng)求參數(shù)的獲取:@RequestHeader
????· query --> 請(qǐng)求參數(shù)的獲取:@RequestParam
????· path(用于restful接口)–> 請(qǐng)求參數(shù)的獲取:@PathVariable
???? · div(不常用)
????· form(不常用)
????dataType:參數(shù)類型,默認(rèn)String,其它值dataType=“Integer”
????defaultValue:參數(shù)的默認(rèn)值
@ApiResponses:用在請(qǐng)求的方法上,表示一組響應(yīng)
??@ApiResponse:用在@ApiResponses中,一般用于表達(dá)一個(gè)錯(cuò)誤的響應(yīng)信息
????code:數(shù)字,例如400
????message:信息,例如"請(qǐng)求參數(shù)沒(méi)填好"
????response:拋出異常的類
@ApiModel:用于響應(yīng)類上,表示一個(gè)返回響應(yīng)數(shù)據(jù)的信息(這種一般用在post創(chuàng)建的時(shí)候,使用@RequestBody這樣的場(chǎng)景,
請(qǐng)求參數(shù)無(wú)法使用@ApiImplicitParam注解進(jìn)行描述的時(shí)候)
@ApiModelProperty:用在屬性上,描述響應(yīng)類的屬性
4.Controller 層使用Swagger3注解例子
package com.gblfy.controller;import com.infoshare.service.IUserService; import com.infoshare.util.SendMailUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.scheduling.annotation.Async; import javax.annotation.Resource; import javax.servlet.http.HttpSession;/*** @author: gblfy* @time: 2021/9/17*/ @Api(tags = "用戶信息處理") @RestController @RequestMapping("/user") public class UserController {@Resource(name = "userServiceImpl")private IUserService userService;@Resource(name = "sendMailUtil")private SendMailUtil sendMailUtil;private final static int AUTH_CODE_VALID_TIME = 600; //驗(yàn)證碼失效時(shí)間為 10 min/*** 異步獲得驗(yàn)證碼的接口* 驗(yàn)證碼存儲(chǔ)到 Session 里面* @param mail 郵箱* @return authCode_*/@ApiOperation("用戶獲得注冊(cè)驗(yàn)證碼")@Async@GetMapping("/getAuthCode")public String getAuthCode(@RequestParam(name = "mail") String mail,HttpSession session){String authCode_ = sendMailUtil.sendMailAndGetAuthCode(mail);session.setAttribute("mail",authCode_);session.setMaxInactiveInterval(AUTH_CODE_VALID_TIME); //設(shè)置驗(yàn)證碼失效時(shí)間為10minreturn authCode_;}}5.訪問(wèn)Swagger3接口文檔界面
Swagger的訪問(wèn)路徑由port/swagger-ui.html改成了 port/swagger-ui/ 或port/swagger-ui/index.html
兩種訪問(wèn)方式任選其一
http://localhost:8080/swagger-ui/
http://localhost:8080/swagger-ui/index.html
6.Swagger3接口文檔界面展示
二、bootstrapUI
2.1. 導(dǎo)入依賴
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.6</version></dependency>2.2. 訪問(wèn)地址
http://localhost:8080/doc.html
總結(jié)
以上是生活随笔為你收集整理的Springboot2 Swagger3 集成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringBoot2 中 spring
- 下一篇: docker mysql:8.0.27