SpringBoot集成knife4j
【摘要】 前言项目api编写有文档但是调试麻烦,需要借助postman/apipost等第三方工具,需要在开发框架中内置接口管理及调试功能增加开发便捷性 pom配置说明,框架使用springboot版本为2.0.0.RELEASE <dependency> <groupId>com.github.xiaoymin</groupId> <art...
前言
项目api编写有文档但是调试麻烦,需要借助postman/apipost等第三方工具,需要在开发框架中内置接口管理及调试功能增加开发便捷性
pom配置
说明,框架使用springboot版本为2.0.0.RELEASE
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
拦截器配置
在项目中一般会存在鉴权拦截器,需要将knife4j相关资源放行
anonymousAccessList.add("/swagger-resources");
anonymousAccessList.add("/swagger-resources/configuration/ui");
anonymousAccessList.add("/v2/api-docs");
anonymousAccessList.add("/v2/api-docs-ext");
anonymousAccessList.add("/doc.html");
anonymousAccessList.add("/webjars/*");
anonymousAccessList.add("/favicon.ico");
Config配置
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfiguration {
@Value("${spring.profiles.active}")
private String active;
@Bean(value = "frameAPI")
@Conditional({SwaggerProjectCondition.class})
public Docket frameAPI() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo("xxx", "xxx"))
//分组名称
.groupName("xxx")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.xxx.xxx"))
.paths(PathSelectors.any())
.build();
docket.enable(!active.equals("pro"));
return docket;
}
private ApiInfo apiInfo(String appTag, String docName) {
return new ApiInfoBuilder()
.title(appTag + " api")
.description(docName)
.contact("admin")
.version("1.0")
.build();
}
}
注:因为使用knife4j版本不是最新,所以通过docket.enable代码配置的方式控制生产环境关闭文档资源的访问
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)