新需求的解决方案与原有思路不同,具体见下文
新的需求
我们想要对自定义的接口信息进行分组,可以进行权限控制、分组查询等操作,仅仅靠上一篇SpringBoot实现Swagger接口响应信息自定义(二)思路是无法实现了,如何解决这个问题呢?
新需求的解决方案
该方案其实可以替代上一篇SpringBoot实现Swagger接口响应信息自定义(二)的终版解决方案,并且功能更强大,但处理也相对复杂一些,自己尝试下就知道了。话不多说,先看分组的要求,如下图可以选择所谓的分组操作
我们知道,Swagger接口响应的数据是从缓存中取出Documentation,转换成Swagger,最后把Swagger序列化为Json响应的;要想实现分组操作,必须知晓分组的数据是怎么得到的,从源码中可以知道,分组数据源自SwaggerResourcesProvider接口,如下图
该接口本质上还是从DocumentationCache中获取的,如下图
所以思路就是我们可以直接向缓存中写入数据,即调用addDocumentation方法,key值groupName即是分组名称,具体逻辑就不再展示,仅仅提供一种思路,原则上也是只需要设置apiListings即可,其他的数据可以自行研究。