package com.se.simu.config; import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Value; 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.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; /** * Knife4j配置类 * * @author WWW * @date 2024-07-16 */ @Configuration @EnableKnife4j public class Knife4jConfig { @Value("${server.port}") String serverPort; @Value("${knife4j.enabled}") private boolean enabled; @Value("${knife4j.pathMapping}") private String pathMapping; @Value("${server.servlet.context-path}") String contextPath; @Bean public Docket createRestApi() { return new Docket(new DocumentationType("openApi", "3.0")) // 是否启用Swagger .enable(enabled) // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) .apiInfo(apiInfo()) // 分组名称 .groupName("服务") // 设置哪些接口暴露给Swagger展示 .select() // 扫描所有有注解的api,用这种方式更灵活 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) // 扫描指定包中的swagger注解 // .apis(RequestHandlerSelectors.basePackage("com.cn.project.tool.swagger")) // 扫描所有 .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build() /* 设置安全模式,swagger可以设置访问token */ // .securitySchemes(securitySchemes()) .pathMapping(pathMapping); } private ApiInfo apiInfo() { return new ApiInfoBuilder() //描述字段支持Markdown语法 .description("接口文档") .contact(new Contact("WuWeiwei", "http://127.0.0.1:" + serverPort + contextPath + "/doc.html", "252740454@qq.com")) .version("1.0.0") .title("内涝仿真渲染服务API接口文档") .build(); } }