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();
|
}
|
}
|