Spring Boot基礎教程30-Spring Boot集成Swagger

一、 Swagger 是什麼? 
Swagger 是一個規範和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。
http://swagger.io/
Springfox 的前身是 swagger-springmvc,是一個開源的 API doc 框架,可以將我們的 Controller 的
方法以文檔的形式展現,基於 Swagger。
http://springfox.github.io/springfox/
二、 添加 jar 
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.0</version>
</dependency>
三、 配置 
import static springfox.documentation.builders.PathSelectors.regex;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* SwaggerConfig
*/
@Configuration
@EnableSwagger2
public class Swagger2Configuration {/**

* @return
*/
@Bean
public Docket accessToken() {
return new Docket(DocumentationType.SWAGGER_2).groupName("api")// 定義組
.select() // 選擇那些路徑和 api 會生成 document
.apis(RequestHandlerSelectors.basePackage("com.roncoo.example.controller")) // 攔截的包
路徑
.paths(regex("/api/.*"))// 攔截的接口路徑
.build() // 創建
.apiInfo(apiInfo()); // 配置說明
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()//
.title("龍果學院")// 標題
.description("spring boot 全集")// 描述
.termsOfServiceUrl("http://www.roncoo.com")//
.contact(new Contact("wujing", "http://www.roncoo.com", 
"[email protected]"))// 聯繫
// .license("Apache License Version 2.0")// 開源協議
// .licenseUrl("https://github.com/springfox/springfox/blob/master/LICENSE")// 地址
.version("1.0")// 版本
.build();
}
}
四、 測試 
http://localhost:8080/swagger-ui.html
五、 自定義(註解的使用) 
@ApiIgnore
忽略暴露的 api
@ApiOperation(value = "查找", notes = "根據用戶 ID 查找用戶") 
添加說明
其他註解: 
@Api:用在類上,說明該類的作用
@ApiImplicitParams:用在方法上包含一組參數說明
@ApiResponses:用於表示一組響應@ApiResponse:用在@ApiResponses 中,一般用於表達一個錯誤的響應信息
code:數字,例如 400
message:信息,例如"請求參數沒填好"
response:拋出異常的類
@ApiModel:描述一個 Model 的信息(這種一般用在 post 創建的時候,使用@RequestBody 這樣的場
景,請求參數無法使用@ApiImplicitParam 註解進行描述的時候)
@ApiModelProperty:描述一個 model 的屬性 
更多請查看 
https://github.com/swagger-api/swagger-core/wiki/Annotations

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章