Swagger
前后端分离简介
学习Swagger之前我们先了解一下什么是前后端分离:
前后端未分离时代:
- 前端只管理静态的页面,只用画个原型图,然后HTML代码完全可以通过原型图自动生成,那时候前端跟本干不了多少工作,全是属于后端的时代,当时的模板引擎JSP用于写前端页面以及渲染数据。
前后端分离时代:(Vue +SpringBoot等前后端框架出现)
- 后端:后端分层(控制层controller,服务层service,数据访问层dao)【后端团队】
- 前端:前端分层(控制层,视图层)【前端团队】
- 前端通过json伪造后端数据。已经不需要后端,前端工程依旧能跑起来。
- 前端通过调用后端的API获取数据。
- 前后端相对独立,并且松耦合;
- 前后端甚至能部署在不同的服务器上
这时候前后端交互产生问题:
-
前后端集成联调,前端人员和后端人员无法做到“及时协商,尽早解决”,最终导致问题集中爆发。
-
解决方案:
- 首先制订schema计划的提纲,实时更新最新API,降低集成的风险;
- 早些年:指定Word计划文档,规定一些数据以及接口格式。
- 前后端分离:
- 前端测试后端接口:postman
- 后端提供接口,需要实时更新最新的消息及改动!
Swagger简介
在前后端分离简介中我们了解到,前后端分离虽然实现了松耦合但是出现了接口更新不及时的问题无法做到及时协商。这时候Swagger的出现很好的解决了接口更新不及时的问题
- Swagger号称世界上最流行API框架
- RestFul API文档在线自动生成工具=>API文档与API定义同步更新
- 直接运行,可以直接测试API接口;
- 支持多种语言(Java,PHP…)
官网:https://swagger.io/
在项目中使用Swagger需要springbox;
- swagger2
- UI
SpringBoot集成swagger
1.新建一个SpringBoot=web项目
2.在pom.xml中导入相关依赖
<!-- 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>
3.在controller层编写一个helloworld接口
@RestController
public class HelloController {
@GetMapping(value = "/hello")
public String hello(){
return "hello";
}
}
4.在config包下配置Swagger
@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {
}
5.测试运行:http://localhost:8080/swagger-ui.html</