Swagger的配置(注:配合資源路徑一起使用)


一、導入依賴

    <!--Swagger2依賴-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${swagger2.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${swagger2.version}</version>
    </dependency>

二、添加配置

/**
* @Author: cws
* @Date: 13:20 2020/11/19
* @Description:
* @Version v1.0
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {

   /**
    * 創建API
    */
   @Bean
   public Docket createRestApi() {
       return new Docket(DocumentationType.SWAGGER_2)
               // 用來創建該API的基本信息,展示在文檔的頁面中(自定義展示的信息)
               .apiInfo(apiInfo())
               // 設置哪些接口暴露給Swagger展示
               .select()
               // 掃描所有有注解的api,用這種方式更靈活
               .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
               // 掃描指定包中的swagger注解
               // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger"))
               // 掃描所有 .apis(RequestHandlerSelectors.any())
               .paths(PathSelectors.any())
               .build()
               /* 設置安全模式,swagger可以設置訪問token */
               .securitySchemes(securitySchemes())
               .securityContexts(securityContexts());
   }

   /**
    * 添加摘要信息
    */
   private ApiInfo apiInfo() {
       // 用ApiInfoBuilder進行定制
       return new ApiInfoBuilder()
               // 設置標題
               .title("標題:公司官網系統_接口文檔")
               // 描述
               .description("描述:用於管理公司的發布信息,具體包括XXX,XXX模塊...")
               // 作者信息
               .contact(new Contact("cws", null, null))
               // 版本
               .version("版本號:V.1")
               .build();
   }

   /**
    * 安全模式,這里指定token通過Authorization頭請求頭傳遞
    */
   private List<ApiKey> securitySchemes() {
       List<ApiKey> apiKeyList = new ArrayList<>();
       apiKeyList.add(new ApiKey("Authorization", "Authorization", "header"));
       return apiKeyList;
   }

   /**
    * 安全上下文
    */
   private List<SecurityContext> securityContexts() {
       List<SecurityContext> securityContexts = new ArrayList<>();
       securityContexts.add(
               SecurityContext.builder()
                       .securityReferences(defaultAuth())
                       .forPaths(PathSelectors.regex("^(?!auth).*$"))
                       .build());
       return securityContexts;
   }

   /**
    * 默認的安全上引用
    */
   private List<SecurityReference> defaultAuth() {
       AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
       AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
       authorizationScopes[0] = authorizationScope;
       List<SecurityReference> securityReferences = new ArrayList<>();
       securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
       return securityReferences;
   }
} ```


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM