剛開始學java的時候,各種學習都是匆忙,能夠盡快進入項目開發(fā),沒有總結之前學習的,后來重新自己創(chuàng)建項目,發(fā)現(xiàn)之前學的還是需要總結一下。
1.認識Swagger
Swagger是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化RESTful風格的Web服務??傮w目標是使客戶端和文件系統(tǒng)作為服務器以同樣的速度來更新。文件的方法,參數(shù)和模型緊密集成到服務器端的代碼,允許API來始終保持同步。
2.首先在pom.xml中添加依賴
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
2.創(chuàng)建swagger2配置類
- 在與spring boot集成時, 放在與啟動Application.java同級的目錄下在同一個目錄下。
- 通過@Configuration注解,讓Spring來加載該類配置
- 通過@EnableSwagger2注解來啟用Swagger2
下面是我自己寫的簡單的配置類,僅供參考
package com.redisdemo.demo;
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.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket buildDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())//調(diào)用下面apiInfo()方法
.select()
//Controller所在路徑
.apis(RequestHandlerSelectors.basePackage("com.redisdemo.demo"))
.paths(PathSelectors.any())
.build();
}
public ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("springboot結合swagger2構建Restful API")
.description("這是一個swagger2小型demo22")
.termsOfServiceUrl("www.baidu.com")
.contact("hwh")
.version("0.0.1")
.build();
}
}
特別注意以上說明的兩個注解。其他開發(fā)中需要的注解慢慢學習應用
@Api:用在類上,說明該類的作用。
@ApiOperation:注解來給API增加方法說明。
@ApiImplicitParams : 用在方法上包含一組參數(shù)說明。
@ApiImplicitParam:用來注解來給方法入?yún)⒃黾诱f明。
@ApiResponses:用于表示一組響應
@ApiResponse:用在@ApiResponses中,一般用于表達一個錯誤的響應信息
l code:數(shù)字,例如400
l message:信息,例如"請求參數(shù)沒填好"
l response:拋出異常的類
@ApiModel:描述一個Model的信息(一般用在請求參數(shù)無法使用@ApiImplicitParam注解進行描述的時候)
l @ApiModelProperty:描述一個model的屬性
完成配置之后,運行項目,訪問地址:http://localhost:8080/swagger-ui.html,這里并不一定是8080,要看你自己配置的接口是多少,還有l(wèi)ocalhost可以換成開發(fā)中的測試環(huán)境,開發(fā)環(huán)境等等。
以下是我大致訪問的界面:

image.png
大家可以自己嘗試配置一下,很簡單的。