spring boot 处理 swagger 嵌套数据展示
在开发的过程中,我们会常常使用swagger做我们的在线文档.
我们会在对象的属性上使用@ApiModelProperty 等api注解,但是遇到对象嵌套的时候,如何返回一个嵌套的json文档就需要我们做一些简单的处理
如果只在对象某个属性上使用 @ApiModelProperty 并不会起作用
在设置统一返回时,如果仅仅把数据封装在Result对象的属性里, swagger并不会展示data内部的数据
创建一个对象,加入我们的Result中,启动swagger,查看接口的文档
控制器
我们发现最后自动生成的文档里并没有我们需要的内嵌信息
为了展示内嵌的数据对象进行泛型修改
使用泛型指定的swagger,可以展示data的数据内部文档注释
控制器的代码
这里都用到了 lombok 的@Builder进行创建对象
注意加上泛型之后的写法
最后我们发现可以通过swagger得到所有加过的文档注释
在接口的文档注释中,直接可以点开内部的信息
通过泛型,即使是多个对象互相嵌套也可展示
接口不单只获取一个对象,还有分页信息,添加一个拥有泛型的分页对象
控制器返回封装的分页信息,仍通过Result多层嵌套返回json
swagger 多层嵌套返回了每一个内部对象的文档注释
依此点开,可以看到内部信息
github Demo
源码地址
原文地址:http://www.elfop.com/2019/07/24/springBoot%E6%95%B4%E5%90%88swagger%E5%B1%95%E7%A4%BA%E8%BF%94%E5%9B%9E%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%B5%8C%E5%A5%97%E5%B1%9E%E6%80%A7%E6%96%87%E6%A1%A3%E6%B3%A8%E9%87%8A/#spring-boot-%E5%A4%84%E7%90%86-swagger-%E5%B5%8C%E5%A5%97%E6%95%B0%E6%8D%AE%E5%B1%95%E7%A4%BA