SpringBoot 集成 Swagger2

Swagger2

1. Swagger 簡介

Swagger是非常流行的API管理工具,支持整個API的生命周期,包括API設(shè)計、開發(fā)及測試。

2. 集成 Swagger2

2.1 添加依賴

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.7.0</version>
</dependency>

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>2.7.0</version>
</dependency>

2.2 編寫Swagger2配置類

@Configuration
@EnableSwagger2
public class Swagger2 {
    // 控制開關(guān)
    @Value("${swagger.show}")
    private boolean swaggerShow;
    
    public Docket createUserApi() {
        return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.greedy.web.task"))
            .paths(PathSelectors.any())
            .build()
            .groupName("task")
            .enable(swaggerShow);
    }
    
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("STARK API")
            .description("接口文檔")
            .termsOfServiceUrl("/")
            .version("v1.0")
            .build();
    } 
}

方法說明

  • apiInfo():指定接口文檔的基本說明信息,例如:文檔標題、文檔描述、服務(wù)的URL、文檔版本、作者、聯(lián)系郵箱等等
  • groupName():為API設(shè)置分組名稱
  • select():返回一個ApiSelectorBuilder實例,用來控制哪些API接口可以暴露
  • apis():ApiSelectorBuilder的成員方法,用來指定需要暴露的API所屬的包
  • paths():ApiSelectorBuilder的成員方法,用來過濾API路由路徑
  • build():返回一個Docket實例
  • enable():文檔顯示的控制開關(guān)

3. Swagger相關(guān)注解

(1) @Api 注解
作用在類上,用來描述Controller的作用,同一個Controller下的API作為一個分組
常用屬性:

  • value:URL的路徑值
  • tags:API分組標簽,用來說明Controller的作用,如果設(shè)置了tags,則value會被覆蓋
  • description:API分組說明

(2) @ApiOperation 注解
作用在方法上,用來描述API接口
常用屬性:

  • value:API接口說明

(3) @ApiImplicitParam 注解
作用在方法上,用來描述單個參數(shù)的信息
常用屬性:

  • name:參數(shù)名
  • value:參數(shù)中文描述
  • required:是否必傳
  • defaultValue:參數(shù)默認值
  • dataType:參數(shù)類型

(4) @ApiImplicitParams 注解
作用在方法上,用來描述多個參數(shù)的信息,屬性類型為@ApiImplicitParam注解的數(shù)組

(5) @ApiIgnore 注解
作用在類上、方法上、參數(shù)上,用來忽略API接口或者接口的參數(shù)

(6) @ApiModel 注解
作用在JavaBean上,表示用對象來接收參數(shù)
常用屬性:

  • value:為模型提供備用名稱
  • descripton:為模型提供詳細描述

(7) @ApiProperty 注解
作用在JavaBean的屬性上,用來描述對象的字段
常用屬性:

  • name:屬性名稱
  • value:屬性中文描述
  • dataType:屬性的數(shù)據(jù)類型
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容