Spring boot 整合 Swagger UI

gradle 依賴:html

buildscript {
    ext {
        springBootVersion = '1.5.9.RELEASE'
        swaggerVersion = '2.7.0'
    }
    repositories {
        maven {
            url '私服倉庫地址'
        }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}
dependencies {
    compile group: 'io.springfox', name: 'springfox-swagger2', version: swaggerVersion
    compile group: 'io.springfox', name: 'springfox-swagger-ui', version: swaggerVersion
}

Swagger 配置:java

@Configuration
@EnableSwagger2
public class Swagger2 {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(
                RequestHandlerSelectors.basePackage("com.xxx.xxx")).paths(
                PathSelectors.any()).build();
    }

    /**
     * 頁面中展示的概述信息
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("標題").contact("Author").version(
                "Version").build();
    }

}

訪問:http://IP:port/contextPath/swagger-ui.htmlspring

相關注解說明:api

@Api:做用於Controller上,描述控制器的做用
@ApiOperation:做用於方法上,描述方法的做用
@ApiIgnore:做用於方法上,使該方法不被顯示在Swagger UI 文檔中
@ApiImplicitParam:做用於方法上,描述方法中請求的參數
@Api(value = "這是一個控制器", description= "這個控制器是處理XXX的") 
public class XxxController{

    /**
     * tags 能夠將控制的方法進行分類,想用tags的方法在同一父節點下
     */
    @GetMapping("/user/{id}")
    @ApiOperation(value = "獲取用戶信息", tags = "tag1")
    @ApiImplicitParam(name = "id", value = "參數描述", required = true, dataType = "String")
    public User getUser(@PathVariable String id){

        return new User();
    }
    
}
@ApiModel:做用與POJO類上,可顯示POJO類屬性
@ApiModelProperty:做用於@ApiModel標記的POJO類的屬性上,對屬性進行描述
@ApiModel
public class User{

    @ApiModelProperty("姓名")
    private String name = "";
}

其餘註解沒有深刻研究,歡迎補充!app

相關文章
相關標籤/搜索