点击关注公众号,Java干货及时送达

作者:youcongtech

segmentfault.com/a/1190000038170506

之前在创业公司待的时候,用过swagger,因为我第一天来这家公司工作,第一个任务就是做接口文档自动化。

后来觉得它不太好用,在浏览技术网站的时候,偶然发现swagger-bootstrap-ui,于是便重构了,把swagger-bootstrap-ui整合进来,后来发现不仅仅对我们后端有帮助,主要方便我们将接口进行归类,同样对安卓小伙伴也有帮助,他们可以看这个接口文档进行联调。当初我使用swagger-boostrap-ui的时候,那个时候还是1.x版本,如今swagger-bootsrap-ui到2.x,同时也更改名字knife4j,适用场景从过去的单体到微服务。也算是见证咱们国人自己的开源项目从小到大。

该开源项目GitHub地址:

https://github.com/xiaoymin/Swagger-Bootstrap-UI

该开源项目中文文档地址:

https://doc.xiaominfo.com/

一、添加Maven依赖

<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency>
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.6</version>
</dependency>

二、添加配置类

package com.blog.tutorial.config;
import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/*** @description:* @author: youcong* @time: 2020/11/14 15:46*/@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
public class SwaggerConfiguration {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.blog.tutorial.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("swagger-bootstrap-ui RESTful APIs").description("swagger-bootstrap-ui").termsOfServiceUrl("http://localhost:5050/").contact("developer@mail.com").version("1.0").build();}
}

三、启动项目

启动项目,不报错,然后访问地址:
http://ip:port/doc.html 即可

效果图,如下:

测试接口,效果图如下:

调式相当于用PostMan测试接口。

四、常用注解

和swagger一样,swagger用的注解,swagger-bootstrap-ui仍能用。
不过结合我的开发经验来看,最常用的也就两个,@Api和@ApiOperation。
@Api的效果,如图:

@ApiOperation的效果,如图:

由此,我们很容易就看出来,它们的含义是什么,一个是接口分类说明,一个是接口方法说明。

至于这里不用swagger的参数注解,主要原因是不想加太多的注解从而增加代码的数量,造成太多冗余。搜索Java知音公众号,回复“后端面试”,送你一份Java面试题宝典.pdf

例子中的Controller代码:

package com.blog.tutorial.controller;
import com.blog.tutorial.entity.Users;
import com.blog.tutorial.service.UsersService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/*** @description:* @author: youcong* @time: 2020/11/14 13:27*/@RestController
@RequestMapping("/user")
@Api(tags = {"用户管理"}, description = "用户管理")
public class UserController {@Autowiredprivate UsersService usersService;@GetMapping("/list")@ApiOperation(value = "用户列表")public List<Users> list() {return usersService.list();}
}

五、其它

关于swagger整合系列,可以参考如下:

https://www.cnblogs.com/youcong/p/9011302.html

关于swagger-bootstrap整合系列,可以参考:

https://www.cnblogs.com/youcong/p/9196157.html

https://www.cnblogs.com/youcong/p/10786371.html

六、可能遇到的问题

1.访问不到接口文档界面白版

一般是被拦截了(shiro或springsecurity机制)或者是配置错误。

2.访问接口文档界面出来了,但扫描不到接口

主要是配置类的缘故,配置类有个包扫描,必须配置为controller路径。
如图所示:

如果还有其它问题,可以去官方文档上找,官方文档有一个常规问题列表和解决方案,如图所示:

如果问题非常奇葩的话,实在解决不了(在参考官方文档说明和搜索的前提下,仍解决不了,把问题详细描述和关键性代码提到该开源项目的issue上,向创造者求助)。

热门内容:史上最强Redis6.0,世界排名第一!为什么不推荐使用BeanUtils属性转换工具
Redis分布式锁使用不当,酿成一个重大事故,超卖了100瓶飞天茅台!!!
常用正则表达式最强整理(速查手册)
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

SpringBoot集成Swagger-Bootstrap-UI,页面更清爽!相关推荐

  1. springboot集成swagger页面空白解决方法

    今天在个人springboot项目使用swagger时遇到页面始终空白的问题,就顺便贴个博文,简单写下springboot集成swagger,并记录下问题. 1. 引入依赖包 <dependen ...

  2. Springboot集成Swagger

    Springboot集成Swagger 1. Swagger概述 2. Swagger注解说明 3. Springboot集成Swagger 3.1 引入依赖 3.2 工具类 3.3 配置类 3.4 ...

  3. SpringBoot集成swagger生成在线接口文档

    SpringBoot集成swagger生成在线接口文档 集成maven依赖 <dependency><groupId>io.springfox</groupId>& ...

  4. [Swagger2]SpringBoot集成Swagger

    SpringBoot集成Swagger 引入依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 ...

  5. 20190909 SpringBoot集成Swagger

    SpringBoot集成Swagger 1. 引入依赖 // SpringBoot compile('org.springframework.boot:spring-boot-starter-web' ...

  6. 【水滴石穿】SpringBoot 集成Swagger

    SpringBoot 集成Swagger Swagger 可以使你的restful接口自动生成接口文档,方便查看与测试,下面是一些具体步骤: 1.引入swagger相关依赖 <dependenc ...

  7. SpringBoot教程(十六) | SpringBoot集成swagger(全网最全)

    一. 接口文档概述 swagger是当下比较流行的实时接口文文档生成工具.接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发 ...

  8. Springboot 集成Swagger在线调试

    集成Swagger在线调试 转载http://blog.battcn.com/2018/05/16/springboot/v2-config-swagger/ SpringBoot是为了简化Sprin ...

  9. SpringBoot——SpringBoot集成Swagger生成API文档

    文章目录: 1.写在前面 2.步骤详解 2.1 pom文件中添加Swagger依赖 2.2 在application.properties核心配置文件中配置Swagger 2.3 编写需要生成API文 ...

  10. springboot 集成 swagger 自动生成API文档

    Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案. S ...

最新文章

  1. 安装win2008R2启动修复失败
  2. linux下svn迁移
  3. cg word List4
  4. 【转】使用多个 Azure 订阅(按照订阅收费)
  5. 首次击败美国!2019《财富》世界500强公布:129家中国公司上榜
  6. Java自动化测试框架-07 - TestNG之Factory篇 - (详细教程)
  7. 记centos7.2+上tomcat启动成功的监控脚本和nginx可配置多个域名
  8. Learning to Fuse Asymmetric Feature Maps in Siamese Trackers 论文与代码笔记
  9. php 虚拟ip 刷流量,浅析网站刷流量的利与弊
  10. 《沧浪之水》:现实从来不怕谁倔犟
  11. 【原创】 ES5高效封装WIN10系统教程2020系列(四)使用工具优化与清理
  12. 面试 HTTP ,99% 的面试官都爱问这些问题
  13. 基于单片机的多功能电子密码锁系统设计
  14. AcWing 225. 矩阵幂求和
  15. 为了实现自动控制处理,需要计算机具有的基础条件是( ),计算机应用基础考试试卷(电大本科)...
  16. 两年卖超2000万支,80%增长来自用户口碑,口腔护理品牌“贝医生”做了什么?
  17. 去噪自动编码器(DAE)
  18. Java实现阿里云OCR的身份证识别等功能具体流程(包括android思路)
  19. 企业NAS中的AD域控制器
  20. Proteus:单片机用按键控制LED的亮灭

热门文章

  1. 想法2: 充电性冰袋
  2. matlab2013 a/b 找不到vs2013 c++ 编译器 解决方案
  3. ansible之playbook
  4. 反射拷贝对象的思路:
  5. [Python Study Notes] Python的安装
  6. 【GDKOI2016Day1T1-魔卡少女】【拆位】线段树维护区间内所有连续子区间的异或和...
  7. windows server2012怎样关机怎样重启-详细教程
  8. 【组队学习】【29期】6. 动手学数据分析
  9. 宁彦吉:如何进行作业的评审?
  10. html在线缓存视频,javascript – 如何为HTML视频添加缓冲