疯狂的狮子li
2022-01-11 26fc652d33fb82a75d6ec7771ca50ee414b21723
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
@@ -34,7 +34,7 @@
    private SwaggerProperties swaggerProperties;
    @Autowired
   private TokenProperties tokenProperties;
    private TokenProperties tokenProperties;
    @Autowired
    private OpenApiExtensionResolver openApiExtensionResolver;
@@ -44,30 +44,30 @@
     */
    @PostConstruct
    public void createRestApi() {
      for (SwaggerProperties.Groups group : swaggerProperties.getGroups()) {
         String basePackage = group.getBasePackage();
         Docket docket = new Docket(DocumentationType.OAS_30)
               .enable(swaggerProperties.getEnabled())
               // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
               .apiInfo(apiInfo())
               // 设置哪些接口暴露给Swagger展示
               .select()
               // 扫描所有有注解的api,用这种方式更灵活
               //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
               // 扫描指定包中的swagger注解
               .apis(RequestHandlerSelectors.basePackage(basePackage))
               // 扫描所有 .apis(RequestHandlerSelectors.any())
               .paths(PathSelectors.any())
               .build()
               .groupName(group.getName())
               // 设置安全模式,swagger可以设置访问token
               .securitySchemes(securitySchemes())
               .securityContexts(securityContexts())
                    .extensions(openApiExtensionResolver.buildExtensions(group.getName()))
               .pathMapping(swaggerProperties.getPathMapping());
         String beanName = StringUtils.substringAfterLast(basePackage, ".") + "Docket";
         SpringUtils.registerBean(beanName, docket);
      }
        for (SwaggerProperties.Groups group : swaggerProperties.getGroups()) {
            String basePackage = group.getBasePackage();
            Docket docket = new Docket(DocumentationType.OAS_30)
                .enable(swaggerProperties.getEnabled())
                // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
                .apiInfo(apiInfo())
                // 设置哪些接口暴露给Swagger展示
                .select()
                // 扫描所有有注解的api,用这种方式更灵活
                //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                // 扫描指定包中的swagger注解
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                // 扫描所有 .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build()
                .groupName(group.getName())
                // 设置安全模式,swagger可以设置访问token
                .securitySchemes(securitySchemes())
                .securityContexts(securityContexts())
                .extensions(openApiExtensionResolver.buildExtensions(group.getName()))
                .pathMapping(swaggerProperties.getPathMapping());
            String beanName = StringUtils.substringAfterLast(basePackage, ".") + "Docket";
            SpringUtils.registerBean(beanName, docket);
        }
    }
    /**
@@ -75,8 +75,8 @@
     */
    private List<SecurityScheme> securitySchemes() {
        List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
      String header = tokenProperties.getHeader();
      apiKeyList.add(new ApiKey(header, header, In.HEADER.toValue()));
        String header = tokenProperties.getHeader();
        apiKeyList.add(new ApiKey(header, header, In.HEADER.toValue()));
        return apiKeyList;
    }
@@ -86,10 +86,10 @@
    private List<SecurityContext> securityContexts() {
        List<SecurityContext> securityContexts = new ArrayList<>();
        securityContexts.add(
                SecurityContext.builder()
                        .securityReferences(defaultAuth())
                        .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
                        .build());
            SecurityContext.builder()
                .securityReferences(defaultAuth())
                .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
                .build());
        return securityContexts;
    }
@@ -112,14 +112,14 @@
        // 用ApiInfoBuilder进行定制
        SwaggerProperties.Contact contact = swaggerProperties.getContact();
        return new ApiInfoBuilder()
                // 设置标题
                .title(swaggerProperties.getTitle())
                // 描述
                .description(swaggerProperties.getDescription())
                // 作者信息
                .contact(new Contact(contact.getName(), contact.getUrl(), contact.getEmail()))
                // 版本
                .version(swaggerProperties.getVersion())
                .build();
            // 设置标题
            .title(swaggerProperties.getTitle())
            // 描述
            .description(swaggerProperties.getDescription())
            // 作者信息
            .contact(new Contact(contact.getName(), contact.getUrl(), contact.getEmail()))
            // 版本
            .version(swaggerProperties.getVersion())
            .build();
    }
}