swagger-bootstrap-ui 简述
swagger-bootstrap-ui是一位大神自己写的swagger页面的增强版,添加相应的依赖就可以在项目中使用。相比于swagger默认提供的界面UI,这位大神写的UI更加让人赏心悦目,使用起来也更加方便,来还是直接上图。


使用方法
目前作者提供了spring boot项目和spring mvc项目两种使用方式,区别就是spring mvc需要配置更多的东西。源码和使用方法都在GitHub上,使用方法作者写的特别详细,看就完事儿。
源码地址:https://github.com/xiaoymin/swagger-bootstrap-ui
按照这上面的步骤就是:(spring boot项目)
添加依赖–>初始化配置类(写配置文件)–>启动项目访问接口文档,访问的url是doc.htm结尾的,swagger是swagger-ui.html结尾的,要注意了。
shiro 放行swagger
有些项目用shiro做了权限控制,所以必须要让shiro放行swagger的相关页面。放行方式除了大神写的那种配置,如果你是自己写了一个shiro类,就在shiro类里面放行相关的页面,地址是一样的,注意写法就完了。
// 放行swagger
filterChainDefinitionMap.put("/doc.html", "anon");
filterChainDefinitionMap.put("/swagger-resources", "anon");
filterChainDefinitionMap.put("/v2/api-docs", "anon");
filterChainDefinitionMap.put("/v2/api-docs-ext", "anon");
filterChainDefinitionMap.put("/webjars/**", "anon");
Whitelabel Error Page
spring boot项目在访问接口文档的时候可能会报404找不到页面的错误,添加一个配置文件就好了,GitHub上也有的。
问题大合集
在使用这个增强版的时候,你可能还想要更多的设置,更多的人性化,那就有可能需要解决这些问题:
然而这些问题大神已经都给我们写好解决方案了,地址在这儿:
https://doc.xiaominfo.com/guide/
隐藏session参数
有些接口需要用到session,但测接口传参的时候是不需要传session的,如果不做处理在页面上请求接口的时候session的很多参数就会自动出现,如果是表单传参还要手动取消参数全选,再重新选择需要的参数,特别不友好。
大神的解决方案,处理一下就好了:
https://www.xiaominfo.com/2019/06/03/springfox-21/
隐藏实体类参数
在把swagger增强版引进项目时,遇到一个问题:
total实体类里面除了自己的字段还包含了很多个其他的实体类比如car,road,environment,接口传参的时候是以这个total类作为一个model整体传参的,可是我不需要传其他的实体类参数,只需要这个total实体类自己的字段,这就涉及到需要隐藏total类里面的其他实体类,大神写的忽略参数和隐藏session那两种方式都不能很好的达到我要的效果,那怎么办呢????
还好又找到了一位大神,自己写了一个jar包,里面新增了一个注解,添加注解就能解决这个问题。
这个jar包是swagger2的增强版,还需要增加一个swagger2puls的依赖,大神已经把这个包发到中央仓库了,可以直接使用:
<dependencies>
<dependency>
<groupId>com.xzixi</groupId>
<artifactId>swagger2-plus</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
但是这个是基于springfox-swagger2:2.8.0版本的,要注意版本。
之前@EnableSwagger2的注解改成@EnableSwagger2Plus,这时候就可以在total实体类里面的其他实体类字段前添加注解@IgnoreSwagger2Parameter,重新启动项目之后那些多余的字段就不见啦。附上这位大神的链接:https://blog.csdn.net/qq_35433926/article/details/99557364