Swagger 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成、代码自动生成的工具。
前后端分离:Vue+Springboot
后端时代:前端只用管理静态页面;HTML==>后端 过渡到 模板引擎JSP==>后端主力
前后端分离时代:
后端:控制层,服务层,数据访问层 【后端团队】
前端:控制层,视图层 【前端团队】 JSON交互伪造静态JSON数据。不需要后端已经可以跑起来项目,使得前端工程化。
前后端如何交互?===>API接口
前后端相对独立,松耦合;
前后端可以部署在不同服务器上。
产生一个问题:
前后端集成联调,前后端人员无法做到即使协商,尽早解决,最终导致问题集中爆发。
解决方案:
1:首先制定一个Schema计划,实时更新最新API,降低集成风险。
2:早些年:制定Word计划文档。
3:前后端分离:
前端测试后端接口:早期===>PostMan 测试请求。
后端提供接口,需要实时更新最新的消息及改动。
Swagger
1:号称世界上最流行的Api框架;
2:RestFul Api 文档在线生成工具==>Api文档与API代码同步更新;
3:直接运行,可以在线测试API接口;
4: 支持多种语言(JAVA,PHP);
官网:https://swagger.io/
在项目中使用Swagger需要springfox
1:Swagger2
2: ui
SpringBoot 集成 Swagger
1:新建一个 SpringBoot web Maven项目
2: 打开Maven网站:搜索:Springfox Swagger2
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency>
3:搜索 Springfox Swagger UI
<!-- 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: 使用IDEA Maven 创建 SpringBoot
首先在IDEA中新建一个普通的Maven项目,具体如下图所示:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.spring.swagger</groupId> <artifactId>swagger</artifactId> <version>1.0-SNAPSHOT</version> <properties> <jstl.version>1.2</jstl.version> <servlet-api.version>2.5</servlet-api.version> <jsp-api.version>2.0</jsp-api.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.5.RELEASE</version> <relativePath/> </parent> <dependencies> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>${servlet-api.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>${jsp-api.version}</version> <scope>provided</scope> </dependency> <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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <!--控制tomcat端口号 --> <configuration> <port>8080</port> <!-- 发布到tomcat后的名称 --> <!--/ 相当于把项目发布成ROOT --> <path>/abc</path> <uriEncoding>UTF-8</uriEncoding> <!-- <finalName>love</finalName> <server>tomcat7</server> --> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>