在Spring Boot中使用swagger-bootstrap-ui
swagger-bootstrap-ui
是基于swagger接口api实现的一套UI,因swagger原生ui是上下结构的,在浏览接口时不是很清晰,所以,swagger-bootstrap-ui
是基于左右菜单风格的方式,适用与我们在开发后台系统左右结构这种风格类似,方便与接口浏览
GitHub:https://github.com/xiaoymin/Swagger-Bootstrap-UI
欢迎大家Watch,Fork,Star
界面预览:
引入swagger
在pom.xml文件中引入swagger以及ui的jar包依赖
1 2 3 4 5 6 7 8 9 10 11 | <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version> 2.7 . 0 </version> </dependency> <!--引入ui包--> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version> 1.7 </version> </dependency> |
配置configuration
配置swagger的启用配置文件,关键注解@EnableSwagger2
一下配置是支持接口分组的配置,如果没有分组配置,只需要创建一个Docket
即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | @Configuration @EnableSwagger2 public class SwaggerConfiguration { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName( "资源管理" ) .select() .apis(RequestHandlerSelectors.basePackage( "com.lishiots.dc.baseinfo.ctl" )) .paths(PathSelectors.any()) .build(); } @Bean public Docket createMonitorRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName( "实时监测" ) .select() .apis(RequestHandlerSelectors.basePackage( "com.lishiots.dc.monitor.ctl" )) .paths(PathSelectors.any()) .build(); } @Bean public Docket createActivitiRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName( "工作流引擎" ) .select() .apis(RequestHandlerSelectors.basePackage( "com.lishiots.dc.activiti.ctl" )) .paths(PathSelectors.any()) .build(); } @Bean public Docket createBaseRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName( "kernel模块" ) .select() .apis(RequestHandlerSelectors.basePackage( "com.lishiots.dc.kernel.ctl" )) .paths(PathSelectors.any()) .build(); } @Bean public Docket createComplaintRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName( "投诉管理" ) .select() .apis(RequestHandlerSelectors.basePackage( "com.lishiots.dc.complaint.ctl" )) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title( "swagger RESTful APIs" ) .description( "swagger RESTful APIs" ) .termsOfServiceUrl( "http://www.test.com/" ) .contact( "xiaoymin@foxmail.com" ) .version( "1.0" ) .build(); } } |
Controller层使用swagger注解
ctl代码层:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @Api (tags = "banner管理" ) @RestController @RequestMapping ( "/api/bannerInfo" ) public class BannerCtl { @Autowired private BannerInfoService service; @PostMapping ( "/query" ) @ApiOperation (value = "查询banner" ,notes = "查询banner" ) public Pagination<BannerInfo> bannerInfoQuery(){ Pagination<BannerInfo> pagination = service.bannerInfoQuery(); return pagination; } } |
接口访问
在浏览器输入:http://${host}:${port}/doc.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!