Springboot之swagger-bootstrap-ui(knife4j)

最近在網上看到一個比較好的swagger-ui,swagger自帶的UI不是很友好。特此記錄下整合過程,並梳理下swagger相關的知識

什麼是swagger?

簡單來說就是解放程序員,讓程序員少些不必要的API文檔,只需要在項目當中定義好接口,返回實體等然後通過swagger暴露出來就可以自動生成接口相關的API文檔!!!

swagger-bootstrap-ui(knife4j)

swagger是由自己自帶的UI的,不過在對比兩個之後,感覺swagger-bootstrap-ui現已變更爲knife4j很不錯!!!knife4j官網
第一步:引入JAR包

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.3</version>
        </dependency>

第二步:代碼開啓swagger2支持

@Configuration
@EnableSwagger2 
public class Swagger2Configuration {


    @Bean
    public Docket createRestApi() {

        List<Parameter> pars = new ArrayList<Parameter>();
        
        //構建默認參數
        ParameterBuilder ticketPar = new ParameterBuilder();
        ticketPar.name("Content-Type").description("Content-Type")
                .modelRef(new ModelRef("string")).parameterType("header")
                .required(true)
                .defaultValue("application/json").build();
        pars.add(ticketPar.build());
        //構建默認請求驗證參數
        ticketPar = new ParameterBuilder();
        ticketPar.name("Authorization").description("Authorization")
                .modelRef(new ModelRef("string")).parameterType("header")
                .required(true)
                .defaultValue("111111111111111111111111111111111111111111111111").build();
        pars.add(ticketPar.build());
        
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("cn.hjljy.fastboot.controller"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(pars);
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("swagger RESTful APIs")
                .description("swagger RESTful APIs")
                .termsOfServiceUrl("http://www.hjljy.cn/")
                .contact("[email protected]")
                .version("1.0")
                .build();
    }


}

第三步:創建一個Controller接口,然後輸入:127.0.0.1:8080/doc.html 然後就可以在瀏覽器當中看到接口數據了。

swagger註解說明

@Api(tags = “測試管理”) 用於controller類表明類的接口

@ApiOperation(value = “測試接口”) 用於方法上面 表明方法作用

@ApiModel(value = “demo”) 用於實體類上,表明實體類的作用

@ApiModelProperty(value = “名稱”,required = true) 用於實體類字段上面,表明字段代表含義

其它略。。。。

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