Knife4j框架
Swagger是一个用于生成、描述和调用 RESTful 接口的 Web 服务,可生成项目的接口文档信息。
衍生出的Knife4j框架,可更方便的生成接口文档。
- SpringBoot使用Knife4j依赖引入
<!--knife4j框架集成swagger接口文档-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
- 配置文档信息
在配置类中写入注释
@EnableSwagger2 使用Swagger
@EnableKnife4j 使用Knife4j
在映射静态资源中映射接口文档的页面地址。doc.html是Knife4j自动生成的页面。
创建createRestApi扫描控制层,生成接口。
@Slf4j
@Configuration
//开启swagger文档功能
@EnableSwagger2
@EnableKnife4j
public class WebMvcConfig extends WebMvcConfigurationSupport {
/**
* 设置静态资源映射
* @param registry
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始进行静态资源映射...");
//doc.html是Knife4j自动生成的接口文档页面
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
//静态资源
registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
}
@Bean
public Docket createRestApi() {
// 封装文档类型
return new Docket(DocumentationType.SWAGGER_2)
//添加描述信息
.apiInfo(apiInfo())
.select()
//扫描控制层中所有接口
.apis(RequestHandlerSelectors.basePackage("com.itheima.reggie.controller"))
.paths(PathSelectors.any())
.build();
}
//描述文档信息
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("泥瓶巷陈平安接口文档")
.version("1.0")
.description("泥瓶巷陈平安接口文档")
.build();
}
}
-免拦截配置
如果有设置登录拦截,可使用以下路径开放接口文档路径。(没有设置登录拦截可不用,也可登录了再访问查看)
//放行接口文档页面
"/doc.html",
"/webjars/**",
"/swagger-resources",
"/v2/api-docs"
项目启动后根据端口号直接访问页面
http://localhost:8080/doc.html
-doc.html