写点什么

给 Swagger 换了个新皮肤,瞬间高大上了

  • 2021 年 11 月 12 日
  • 本文字数:1181 字

    阅读完需:约 4 分钟

=======================================================================


接下来我们来介绍下如何在 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


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


er2


@EnableKnife4j


public class Swagger2Config {


}


  • 运行我们的 SpringBoot 应用,访问 API 文档地址即可查看:http://localhost:8088/doc.html



功能特点


=======================================================================


接下来我们对比下 Swagger,看看使用 knife4j 和它有啥不同之处!


JSON 功能增强


===========================================================================


平时一直使用 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

评论

发布
暂无评论
给Swagger换了个新皮肤,瞬间高大上了