一、为什么要用 Swagger

现在的开发模式,一般都是前后端分离的,开发接口文档就显得尤为重要,前端人员需要按照后端的功能文档调用对应的接口。在没有使用 API 文档之前,很多公司都是在纸或者 MarkDown 上写文档,不仅效率低,在进行前后端交互的时候也很容易出问题。

Swagger 是一款 API 构建工具,用于满足开发人员构建 API 的需求。Swagger 使用交互式的 API 文档来改善开发人员的体验,并提供无开销的测试功能,还支持可视化的 UI 文档界面。通过 UI 文档界面,前端人员可以很清楚的知道每个接口对应的功能,后端开发人员也可以进行相应的代码测试。

二、Spring Boot 整合 Swagger

在 SpringBoot 中整合 Swagger 很简单,只需要添加对应的依赖、然后配置相关的 Bean 即可,然后使用合适的注解用于文档说明,下面我们就来这么做。

pom.xml 中引入对应的依赖

        <!-- 引入 swagger 对应的依赖 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version></dependency>

Swagger 配置类 SwaggerConfiguration

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.jas")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("swagger构建api文档").description("swaggerTest").version("1.0").build();}
}

测试的 Controller

    @ResponseBody@GetMapping("/test")@ApiOperation(value = "swagger 测试", httpMethod = "GET", response = String.class)public String testSwagger(String userName) {return "Hello " + userName;}

三、访问 UI 页面文档

输入 http://{ip地址}:{端口号}/{资源路径,如果有配置}/swagger-ui.html 即可访问到 Swagger 文档页面,如下

后端开发人员可以在 API 文档上进行测试,方便问题的排查,前端人员也可以很清晰的知道每个接口对应的功能,然后就可以放心的开发啦。

四、常用的文档注解与属性

@ApiProperty:用对象接收参数时,说明属性信息

@ApiParam:描述某个参数

@Api:用于标注在 Controller 上

  • description:Controller 描述信息

@ApiOperation :对 Controller 中的资源进行定义

  • value:说明信息
  • httpMethod:HTTP 请求的方式
  • response:返回值类型

Spring Boot 整合 Swagger相关推荐

  1. Spring Boot 整合Swagger实现API管理

    Spring Boot 整合Swagger实现API管理 1 Swagger介绍 根据官网的介绍: https://swagger.io Swagger 是一款RESTFUL接口的.基于YAML.JS ...

  2. Swagger Learing - Spring Boot 整合swagger

    学习了一下swagger. 这是编写的Demo 源码 https://github.com/AmberBar/Learning/tree/master/swagger-learning/swagger ...

  3. Spring Boot整合Swagger3配置全局Token

    应用背景:Swagger配置全局Token的目的在于调用真正接口前会被相关拦截器拦截,拦截器会校验此次访问是否合法,这时配置全局Token的作用就显现出来了,全局Token可以存储所有接口访问时的令牌 ...

  4. Spring Boot整合Swagger3注解@ApiImplicitParam的paramType属性为“path“

    Spring Boot整合Swagger3的依赖版本为: <!--引入SpringBoot整合Swagger3的依赖--> <dependency><groupId> ...

  5. Spring Boot整合Swagger3注解@ApiImplicitParam的allowMultiple属性

    Spring Boot整合Swagger3的依赖版本为: <!--引入SpringBoot整合Swagger3的依赖--> <dependency><groupId> ...

  6. Spring Boot 整合——Spring Boot整合kafka整合

    Spring Boot 整合之前的内容 项目名称 描述 地址 base-data-mybatis 整合mybatis-plus(实际上官方教程已经很多,只做了自定义插件) 未完成 base-jpa J ...

  7. Spring Boot整合RSA加密数据传输

    简介 吹水时间开始了,是这样的,公司自研开发一个app,因为要运营和上架需要办理安全评估,办理中说到公司app有可能会泄露用户信息,对用户信息没有加密,遇到抓包的可能会导致用户信息泄露,这时我想到了R ...

  8. Spring Boot 2.X - Spring Boot整合Swagger2(starter方式)

    文章目录 Spring Boot 2.X - Spring Boot整合Swagger2(starter方式) 引入依赖 添加@EnableSwagger2Doc注解 创建实体类 创建Controll ...

  9. spring boot整合spring security笔记

    最近自己做了一个小项目,正在进行springboot和spring Security的整合,有一丢丢的感悟,在这里分享一下: 首先,spring boot整合spring security最好是使用T ...

最新文章

  1. linux使用wget下载https开头url的文件
  2. jmeter用户自定义变量的实际使用
  3. 「GNN,简直太烂了」,一位Reddit网友的深度分析火了
  4. CNCF 公布 2020 年 TOC 选举结果 | 云原生生态周报 Vol. 36
  5. python selenium对浏览器自动截图
  6. 大数据学习——akka自定义RPC
  7. C++之‘nullptr’ was not declared in this scope
  8. inno setup 另一个程序正在使用此文件_STEP 7-MicroWIN SMART程序的上传与下载方式
  9. 计算机考研单科成绩要求,考研单科分数是多少
  10. 在asp中实现自动缩放图片(推荐)
  11. 全新卡盟系统PHP版 集成易支付_2020年全新PHP全开源易支付系统完整源码 带多个支付接口...
  12. 笔记本 续航测试软件,续航测试:较高强度运行状态_笔记本评测-中关村在线
  13. 【CSS 字体 属性(Font)】
  14. springboot项目配置视图解析器无效的问题
  15. 电脑被格式化后数据还能恢复吗【图文】
  16. 单项冠军企业申报条件及奖励政策
  17. Python利用Opencv读取图片
  18. 如何找到google主题的壁纸
  19. 观其关键字排名查询工具_海口seo关键字优化工具排名
  20. matlab弹道仿真,基于Matlab和Simulink的导弹弹道仿真与应用

热门文章

  1. 【算法系列之万字总结常用的查找算法,持续补充更新中】
  2. oracle存储日志
  3. mybatis多条件查询
  4. Spring Session——@EnableSpringHttpSession注解
  5. BIOS——PE无法识别硬盘问题问题解决方案
  6. mysql删除有关联的数据库表_【数据库】mysql如何删除关联表
  7. 解决LoggerFactory is not a Logback LoggerEither remove Logback or the competing implementation (class
  8. 易混淆的c++知识点
  9. java ,c# 解决安全沙箱问题
  10. 数学建模-预测模型总结(适用范围、优缺点)【灰色预测模型、插值与拟合、时间序列预测法、马尔科夫预测、差分方程、微分方程模型、神经元网络】