1)引入依赖
<!-- knife4j 接口文档 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.7</version>
</dependency>
2)接口文档配置
/**
* 自定义 Swagger 接口文档的配置
* @author fangjt
* @date 2024/9/22 10:38
*/
@Configuration
@EnableSwagger2WebMvc
@Profile({"dev", "test"}) //版本控制访问
public class SwaggerConfig {
@Bean(value = "defaultApi2")
public Docket defaultApi2() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// 这里一定要标注你控制器的位置
.apis(RequestHandlerSelectors.basePackage("com.xxx.usercenter.controller"))
.paths(PathSelectors.any())
.build();
}
/**
* api 信息
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("XX项目文档")
.description("XX项目接口文档")
.termsOfServiceUrl("https://github.com/liyupi")
.contact(new Contact("xxx","https://xxx.cn/","xxx-xxx@qq.com"))
.version("1.0")
.build();
}
}
3)yml文件的配置。(上面提到的yml配置,最开始的那个代码块。)
spring:
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
profiles:
active: dev
(补充一下,一定要注意运行环境和扫描的controller包的路径。)
可以通过在 controller 方法上添加 @Api、@ApiImplicitParam(name = "name",value = "姓名",required = true) @ApiOperation(value = "向客人问好") 等注解来自定义生成的接口描述信息。
千万注意:线上环境不要把接口暴露出去!!!可以通过在 SwaggerConfig 配置文件开头加上 @Profile({"dev", "test"}) 限定配置仅在部分环境开启