spring-boot - Swagger2

這是一個方便的接口生成工具,並且他能提供接口單元測試,下面就介紹一下使用方式

 

1. 先在你的工程當中引用到兩個jar,這裏使用maven

<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. 寫swagger的配置文件

import io.swagger.annotations.ApiOperation;
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.service.ApiKey;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;
import java.util.List;

@Configuration
@EnableSwagger2
public class Swagger2Configuration {

    /**
     * @author wujiaxing
     * <p>
     * 使用Swagger2只需三步
     * 1、導入Swaggerr依賴
     * 2、配置Docket的bean
     * 3、使用@Api等註解修飾
     * </p>
     */
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {

        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    //基本信息
                    .apiInfo(apiInfo())
                    //固定寫法
                    .select()
                    // 兩種方式
                    // 第一種:方法需要有ApiOperation註解才能生存接口文檔,withMethodAnnotation(ApiOption.class),或者class帶註解withClassAnnotation
                    // 第二種:定義一個掃描包位置,在目標包裏面的所有帶ApiOperation註釋的都應用,RequestHandlerSelectors.basePackage("目標包名")
                    .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                    // 路徑使用any風格
                    .paths(PathSelectors.any())
                    .build()
                    // 如何保護我們的Api,有三種驗證(ApiKey, BasicAuth, OAuth)
                    .securitySchemes(security());
        }

        /**
         * 接口文檔詳細信息
         *
         * @return
         */
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder().title("標題").description("這是一個描述").termsOfServiceUrl("http://www.localhost:8080").version("1.0.0").build();
        }

        private List<ApiKey> security() {
            ArrayList<ApiKey> apiKeys = new ArrayList<>();
            apiKeys.add(new ApiKey("token", "token", "header"));
            return apiKeys;
        }
    }
}

  

3. 最後如果是配置了必須有ApiOperation的註解才使用就需要在方法上添加註解, 如果是掃描包的形式,就不需要添加任何的註解

    @ApiOperation("hello2")
    @PostMapping(value = "/t2")
    public String hello3(@RequestParam String a){
        return "Test Hello3";
    }

  

4. 測試效果,啓動工程後,可以通過登錄工程的swagger-ui.html地址查看結果如圖

 

 

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