knife4j

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!

gitee地址:https://gitee.com/xiaoym/knife4j

官方文档:https://doc.xiaominfo.com/

效果演示:http://knife4j.xiaominfo.com/doc.html

核心功能

  • 文档说明

  • 在线调试

  • 个性化配置

  • 离线文档

  • 接口排序

集成knife4j

leadnews-common模块中引入如下依赖

pom.xml
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>

同时在父工程引入版本信息

pom.xml
<properties>
<knife4j.version>3.0.3</knife4j.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knife4j.version}}</version>
</dependency>
</dependencies>
</dependencyManagement>

创建配置文件

Knife4jConfiguration
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class Knife4jConfiguration {

@Bean(value = "defaultApi2")
public Docket defaultApi2() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("1.0")
.select()
.apis(RequestHandlerSelectors.basePackage("com.swx"))
.paths(PathSelectors.any())
.build();
}

private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("头条新闻API文档")
.description("头条新闻API文档")
.version("1.0")
.build();
}
}
  • @EnableKnife4j:该注解是Knife4j提供的增强注解,UI提供了例如动态参数、参数过滤、接口排序等增强功能

配置自动装配,在META-INF/spring.factories中添加自动装配类

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.swx.common.knife4j.Knife4jConfiguration

浏览器访问地址:http://localhost:port/doc.html