Version: Next

Swagger

官网:https://swagger.io/

学习目标:

  • 了解Swagger的作用和概念
  • 了解前后端分离
  • 在SpringBoot中集成Swagger

Swagger简介

前后端分离

Vue + SpringBoot

后端时代:

  • 前端只负责管理静态页面: html -> 后端 -> 模板引擎(JSP)

前后端分离时代:

  • 后端 后端控制层、服务层、数据访问层
  • 前端 前端控制层、视图层
    • 伪造后端Json数据,不需要后端,前端工程也能独立跑起来
  • 前后端交互: 通过API接口,协商JSON格式
  • 前后端相对独立,松耦合,甚至可以部署在不同的服务器上

产生问题:

  • 前后端集成联调,前后端人员无法做到及时协商

解决方案:

  • 制定计划,实时更新最新API,降低集成风险
  • 早年:制定word计划
  • 前后端分离:
    • 前端测试后端接口:postman (有点麻烦,还得下载一个软件)
    • 后端提供接口,需要实时更新最新API接口和改动

Swagger

  • 号称世界上最流行的API框架
  • RestFul API文档在线自动生成工具,API文档与API定义同步更新
  • 直接运行,可以在线测试API接口
  • 支持多种语言:Java、PHP、C#等

在项目中使用Swagger

在项目中使用Swagger需要Springfox

  • swagger2
  • swagger UI

SpringBoot集成Swagger

  1. 新建SpringBoot项目 springboot-07-swagger,选择web支持

  2. 导入swagger Maven坐标

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>

如果不想用上面的UI界面,其他可用的UI界面:

  • bootstrap-swagger——访问http://localhost:8080/document.html
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.1</version>
</dependency>l
  • Layui-swagger——访问http://localhost:8080/docs.html
<dependency>
<groupId>com.github.caspar-chen</groupId>
<artifactId>swagger-ui-layer</artifactId>
<version>1.1.3</version>
</dependency>
  1. 配置Swagger -> Config类
@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {
}

这样就已经能用了,访问http://localhost:8080/swagger-ui.html