给 Swagger 换了个新皮肤,瞬间高大上了
=======================================================================
接下来我们来介绍下如何在 SpringBoot 中使用 knife4j,仅需两步即可!
在 pom.xml 中增加 knife4j 的相关依赖;
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
在 Swagger2Config 中增加一个 @EnableKnife4j 注解,该注解可以开启 knife4j 的增强功能;
/**
Swagger2API 文档的配置
*/
@Configuration
@EnableSwagg
er2
@EnableKnife4j
public class Swagger2Config {
}
运行我们的 SpringBoot 应用,访问 API 文档地址即可查看:http://localhost:8088/doc.html
=======================================================================
接下来我们对比下 Swagger,看看使用 knife4j 和它有啥不同之处!
===========================================================================
平时一直使用 Swagger,但是 Swagger 的 JSON 支持一直不是很好,JSON 不能折叠,太长没法看,传 JSON 格式参数时,没有参数校验功能。这些痛点,在 knife4j 上都得到了解决。
返回结果集支持折叠,方便查看;
请求参数有 JSON 校验功能。
=======================================================================
knife4j 也支持在头部添加 Token,用于登录认证使用。
首先在 Authorize 功能中添加登录返回的 Token;
之后在每个接口中就可以看到已经在请求头中携带了 Token 信息。
=======================================================================
knife4j 支持导出离线文档,方便发送给别人,支持 Markdown 格式。
直接选择文档管理->离线文档功能,然后选择下载 Markdown 即可;
我们来查看下导出的 Markdown 离线文档,还是很详细的。
=======================================================================
knife4j 支持临时设置全局参数,支持两种类型 query(表单)、header(请求头)。
比如我们想要在所有请求头中加入一个参数 appType 来区分是 android 还是 ios 调用,可以在全局参数中添加;
此时再调用接口时,就会包含 appType 这个请求头了。
=========================================================================
有时候我们创建和修改的接口会使用同一个对象作为请求参数,但是我们创建的时候并不需要 id,而修改的时候会需要 id,此时我们可以忽略 id 这个属性。
比如这里的创建商品接口,id、商品数量、商品评论数量都可以让后台接口生成无需传递,可以使用 knife4j 提供的 @ApiOperationSupport 注解来忽略这些属性;
/**
品牌管理 Controller
Created by macro on 2019/4/19.
*/
@Api(tags = "PmsBrandController", description = "商品品牌管理")
@Controller
评论