swagger增强Knife4j https://doc.xiaominfo.com/guide/ 我称之为swagger-plus…哈哈哈,
使用起来特别简单,在有swagger的基础上,
加上pom依赖:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
加上注解@EnableKnife4j
swagger配置文件:
@Configuration
@EnableSwagger2
@EnableKnife4j
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.study.test"))
//包下的类,生成接口文档
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("yida接口文档")
.description("yida接口文档")
.version("1.0.0")
.build();
}
}
springmvc配置资源映射,权限不拦截等等:
增加的:
// 资源映射的:
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
拦截放行的
.excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**","/doc.html/**","/api-docs-ext/**")//放行swagger接口文档地址
简单的springmvc配置文件:
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/static/")
.excludePathPatterns("/login/**")//放行登录接口
.excludePathPatterns("/sys/attach/preview/**")//放行文件预览接口
.excludePathPatterns("/upload/**")//放行文件访问静态资源url
.excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**","/doc.html/**","/api-docs-ext/**")//放行swagger接口文档地址
.addPathPatterns("/**/**");
super.addInterceptors(registry);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
启动访问:http://localhost:8888/doc.html#/home你们对应的地址即可:
具体使用就比较简单了,可以参考官网,还有一些错误,也直接看官网,
还提供了离线文档,美滋滋…
还支持接口排序:
接口排序