文档
- 快速开始
- Knife4j 4.0 迭代计划
- 如何贡献代码
- 序章
- 社区
- 增强特性
- 3.1 增强模式
- 3.2 i18n 国际化
- 3.3 接口添加作者
- 3.4 自定义文档
- 3.5 访问权限控制
- 3.6 接口排序
- 3.7 分组排序
- 3.8 请求参数缓存
- 3.9 动态请求参数
- 3.10 导出离线文档
- 3.11 过滤请求参数
- 3.12 包含请求参数
- 3.13 搜索API接口
- 3.14 清除缓存
- 3.15 动态请求参数添加文档注释
- 3.16 动态响应参数添加文档注释
- 3.17 自定义Host
- 3.18 afterScript
- 3.19 OAuth2
- 3.20 导出 Postman
- 3.21 全局参数
- 3.22 自定义 Swagger Models 名称
- 3.23 自定义主页内容
- 3.24 自定义 Footer
- 3.25 JSR303
- 3.26 禁用调试
- 3.27 禁用搜索框
- 3.28 禁用 OpenApi 结构显示
- 3.29 版本控制
- 生态中间件
- 升级
中间件
- 中间件介绍
- Aggregation 微服务聚合中间件
- Desktop 独立渲染组件
OAS 简介
- OAS 简介
- OpenAPI 规范
- Java 注解
实战指南
- 示例代码
- Spring 单体架构
- Spring 微服务架构
- OAuth 2.0
- 微服务聚合实战
- ASP.NET Core
- Springfox 源码系列
- Springfox 源码系列
- springfox 源码分析(一) 程序入口
- springfox 源码分析(二) 初探 mapstruct
- springfox 源码分析(三) 初探 Spring Plugin 插件系统
- springfox 源码分析(四) 配置类初始化
- springfox 源码分析(五) Web 配置类 Plugin 插件的使用
- springfox 源码分析(六) Web 配置类扫描包作用探索
- springfox 源码分析(七) 文档初始化
- springfox 源码分析(八) 遍历接口获取 Model 对象
- springfox 源码分析(九) 文档初始化分组
- springfox 源码分析(十) 遍历接口获取 Model 对象
- springfox 源码分析(十一) 自定义添加 Swagger Models 功能实现
- springfox 源码分析(十二) 遍历接口获取 ApiDescription 集合
- springfox 源码分析(十三) 自定义扩展实现接口的排序
- springfox 源码分析(十四) 归档得到 ApiListing 接口集合
- springfox 源码分析(十五) 归档得到 Documentation 文档对象
- springfox 源码分析(十六) 分组接口 swagger-resouces
- springfox 源码分析(十七) Swagger2 接口文档示例接口 api-docs
- springfox 源码分析(十八) 自定义扩展实现分组的排序
- springfox 源码分析(十九) guava 库学习
- springfox 源码分析(二十一) 忽略参数 Class 类型
1.2 SpringMVC 框架集成 Knife4j
如果你是Spring MVC项目,想使用knife4j提供的增强ui包,使用方法很简单
demo参考示例地址:knife4j-spring-mvc-demo
1.2.1 依赖引用
1.2.1.1 2.0.4(包含)以前的版本
如果开发者使用的是2.0.4(包含)以前的版本,那么需要引入以下2个jar包
第一步是需要引入Knife4j提供的依赖包,如下:
<!--引入Knife4j-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring</artifactId>
<!--在引用时请在maven中央仓库搜索最新版本号-->
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-ui</artifactId>
<!--在引用时请在maven中央仓库搜索最新版本号-->
<version>2.0.4</version>
</dependency>
1.2.1.2 2.0.4(不包含)以后的版本
在2.0.4(不包含)以后的版本中,引入Knife4j进行了改善,开发者只需要引入1个jar包,如下:
<!--引入Knife4j-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-mvc</artifactId>
<!--在引用时请在maven中央仓库搜索最新版本号,如果不存在则代表尚未发布,作者正在努力开发中-->
<version>2.0.5</version>
</dependency>
1.2.2 创建配置文件
第二步是创建配置文件 SwaggerConfiguration.java
,示例代码如下:
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket defaultApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(groupApiInfo())
.groupName("默认接口")
.select()
.apis(RequestHandlerSelectors.basePackage("com.xiaominfo.knife4j.controller"))
//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo groupApiInfo(){
return new ApiInfoBuilder()
.title("swagger-bootstrap-ui很棒~~~!!!")
.description("swagger-bootstrap-ui-demo RESTful APIs")
.termsOfServiceUrl("http://www.group.com/")
.contact("group@qq.com")
.version("1.0")
.build();
}
}
1.2.3 配置静态文件
由于knife4j是通过webjar的方式提供服务,因此对外访问的 doc.html
需要在我们的mvc环境中配置静态目录,否则会出现404,在 spring.xml
主容器的配置文件中配置,代码如下:
<mvc:resources location="classpath:/META-INF/resources/" mapping="doc.html"/>
<mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**"/>
1.2.4 配置增强Filter(可选)
如果开发者需要使用Knife4j提供的两个增强Filter: Basic验证
和 Production验证
那么需要在 web.xml
进行配置,代码如下:
<!--Knife4j提供的Swagger增强功能,Filter过滤保护Swagger资源-->
<!--生产环境Filter-->
<filter>
<filter-name>knife4jProductionFilter</filter-name>
<filter-class>com.github.xiaoymin.knife4j.spring.filter.ProductionSecurityFilter</filter-class>
<init-param>
<param-name>production</param-name>
<!--如果该值配置为true则代表开启-->
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>knife4jProductionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--Swagger资源的Basic认证保护策略-->
<filter>
<filter-name>knife4jSecurityBasic</filter-name>
<filter-class>com.github.xiaoymin.knife4j.spring.filter.SecurityBasicAuthFilter</filter-class>
<!--开启basic认证-->
<init-param>
<param-name>enableBasicAuth</param-name>
<!--如果该值配置为true则代表开启-->
<param-value>false</param-value>
</init-param>
<!--用户名&密码-->
<init-param>
<param-name>userName</param-name>
<param-value>lisi</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>knife4jSecurityBasic</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这2个增强Filter二者只能有一个存在。
如果开发者不需要配置,可忽略该步骤。
1.2.5 配置web.xml
最后一步,我们需要配置 web.xml
,添加部分 servlet-mapping
节点,添加这些节点是防止swagger的接口出现404的出现,配置如下:
<!-- 配置knife4j的url请求路径-->
<!--1.该接口是springfox提供的Swagger实例接口-->
<servlet-mapping>
<servlet-name>knife4jDemoMvc</servlet-name>
<url-pattern>/v2/api-docs</url-pattern>
</servlet-mapping>
<!--2.该接口是springfox提供的Swagger分组接口-->
<servlet-mapping>
<servlet-name>knife4jDemoMvc</servlet-name>
<url-pattern>/swagger-resources</url-pattern>
</servlet-mapping>
<!--3.该接口是springfox提供的Swagger配置接口-->
<servlet-mapping>
<servlet-name>knife4jDemoMvc</servlet-name>
<url-pattern>/swagger-resources/configuration/ui</url-pattern>
</servlet-mapping>
<!--4.该接口是springfox提供的Swagger权限接口(在knife4j中未使用)-->
<servlet-mapping>
<servlet-name>knife4jDemoMvc</servlet-name>
<url-pattern>/swagger-resources/configuration/security</url-pattern>
</servlet-mapping>
<!--5.该接口是knife4j提供的Swagger增强接口-->
<servlet-mapping>
<servlet-name>knife4jDemoMvc</servlet-name>
<url-pattern>/v2/api-docs-ext</url-pattern>
</servlet-mapping>
在上面的配置中,1、2、3是必须添加的
如果开发者需要使用knife4j提供的增强功能,那么第5点也需要添加上
1.2.6 配置增强模式(可选)
如果开发者需要使用 Knife4j
提供的增强模式中的功能,那么需要进行配置,主要分两个版本
1.2.6.1 2.0.4(包含)以前的版本
如果开发者使用的是2.0.4(包含)以前的版本,启用增强功能则在 SwaggerConfiguration
配置文件中进行配置,代码如下:
@Configuration
@EnableSwagger2
//增强扫描
@ComponentScan(
basePackages = {
"com.github.xiaoymin.knife4j.spring.plugin",
"com.github.xiaoymin.knife4j.spring.web"
}
)
public class SwaggerConfiguration {
//more..
}
1.2.6.2 2.0.4(不包含)以后的版本
在2.0.4(不包含)以后的版本,依赖引用会有所不同,开发者引入 knife4j-spring-mvc
的jar包,该包中存在 @EnableKnife4j
注解,则启用增强代码如下:
@Configuration
@EnableSwagger2
//增强扫描
@EnableKnife4j
public class SwaggerConfiguration {
//more..
}
原理很简单,只是提供一个方便大家记忆的注解,其核心只是把上面 @ComponentScan
注解的功能进行了集成。
1.2.7 访问
最后,开发者可以在浏览器通过地址进行访问,访问格式: http://host:port/doc.html
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论