package com.ruoyi.framework.config; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; import org.springdoc.core.models.GroupedOpenApi; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * OpenAPI 文档配置。 */ @Configuration @ConditionalOnProperty(prefix = "swagger", name = "enabled", havingValue = "true", matchIfMissing = true) public class SwaggerConfig { @Autowired private RuoYiConfig ruoyiConfig; @Bean public OpenAPI openAPI() { String schemeName = "Authorization"; return new OpenAPI() .info(new Info() .title("标题:若依管理系统接口文档") .description("描述:用于管理集团旗下公司的人员信息,具体包括 XXX、XXX 模块。") .version("版本号:" + ruoyiConfig.getVersion()) .contact(new Contact().name(ruoyiConfig.getName()))) .components(new Components().addSecuritySchemes(schemeName, new SecurityScheme() .name(schemeName) .type(SecurityScheme.Type.APIKEY) .in(SecurityScheme.In.HEADER))) .addSecurityItem(new SecurityRequirement().addList(schemeName)); } @Bean public GroupedOpenApi defaultOpenApi() { return GroupedOpenApi.builder() .group("default") // 扫描项目真实暴露的接口路径,不用 swagger.pathMapping 做二次过滤, // 否则像 /dev-api 这类网关前缀会把本地 Controller 全部过滤掉。 .pathsToMatch("/**") .build(); } }