-
11 — springboot集成swagger — 更新完毕
1、前言
- 理论知识滤过,自行百度百科swagger是什么
2、导入依赖
|
|
|
<!-- swagger所需要的依赖--> |
|
<dependency> |
|
<groupId>io.springfox</groupId> |
|
<artifactId>springfox-swagger2</artifactId> |
|
<version>2.8.0</version> |
|
</dependency> |
|
<dependency> |
|
<groupId>io.springfox</groupId> |
|
<artifactId>springfox-swagger-ui</artifactId> |
|
<version>2.8.0</version> |
|
</dependency> |
|
<!-- 这个依赖是为了渲染swagger文档页面的( 为了好看一点罢了 ) ,swagger真正的依赖是上面两个--> |
|
<dependency> |
|
<groupId>com.github.xiaoymin</groupId> |
|
<artifactId>swagger-bootstrap-ui</artifactId> |
|
<version>1.8.5</version> |
|
</dependency> |
|
|
|
<dependency> |
|
<groupId>mysql</groupId> |
|
<artifactId>mysql-connector-java</artifactId> |
|
<scope>runtime</scope> |
|
</dependency> |
|
|
|
<dependency> |
|
<groupId>org.mybatis.spring.boot</groupId> |
|
<artifactId>mybatis-spring-boot-starter</artifactId> |
|
<version>1.3.2</version> |
|
</dependency> |
|
|
|
<dependency> |
|
<groupId>com.alibaba</groupId> |
|
<artifactId>fastjson</artifactId> |
|
<version>1.2.75</version> |
|
</dependency> |
|
|
|
<dependency> |
|
<groupId>org.springframework.boot</groupId> |
|
<artifactId>spring-boot-starter-jdbc</artifactId> |
|
</dependency> |
|
4、编写swagger配置文件
|
|
|
package cn.xiegongzi.config; |
|
|
|
|
|
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.service.Contact; |
|
import springfox.documentation.spi.DocumentationType; |
|
import springfox.documentation.spring.web.plugins.Docket; |
|
import springfox.documentation.swagger2.annotations.EnableSwagger2; |
|
|
|
// 把当前类丢到spring容器中去 |
|
// 开启swagger功能 |
|
public class SwaggerConfig { |
|
|
|
|
|
public Docket createRestApi() { |
|
// http://ip地址:端口/项目名/swagger-ui.html#/ |
|
ApiInfo apiInfo = new ApiInfoBuilder() |
|
.title( "悠忽有限公司" ) // 网站标题 即:生成的文档网址标题 |
|
.description( "这是一个很nice的接口文档" ) // 网站描述 即:对生成文档的描述 |
|
.version( "9.0" ) // 版本 |
|
.contact( new Contact("紫邪情","https://www.cnblogs.com/xiegongzi/","110" ) ) // 联系人 |
|
.license( "tcp" ) // 协议 http / https都可以 |
|
.licenseUrl( "http://localhost:8080/" ) // 协议url 即:进入到swagger文档页面的地址 |
|
.build(); |
|
return new Docket( DocumentationType.SWAGGER_2 ) // swagger版本 |
|
.pathMapping( "/" ) // 请求映射路径 就是:controller中有一个接口,然后前台访问的那个接口路径 |
|
// 这个可以在生成的文档中进行调试时看到 |
|
.select() // 根据pathMapping去进行查询( 做相应的操作 ) |
|
// 扫描包 即:哪些地方可以根据我们的注解配置帮我们生成文档 |
|
.apis( RequestHandlerSelectors.basePackage( "cn.xiegongzi" ) ) |
|
.paths( PathSelectors.any() ) |
|
.build() |
|
.apiInfo( apiInfo ); |
|
} |
|
|
|
} |
|
5、编写yml文件
|
|
|
spring: |
|
datasource: |
|
driver-class-name: com.mysql.cj.jdbc.Driver |
|
url: jdbc:mysql://localhost:3306/mybatis_spring?useUnicode=true&characterEncoding=utf-8 # 鸭儿嘞,这个参数配置也要我说明吗,这不是基操吗, |
|
# 这里会报错是因为:我现在使用的驱动是8.0+的,即:上面的com.mysql.cj.jdbc.Driver,这是加了cj啊,这就是表示用的8.0+的驱动涩,而我没有在这里配置timeZone时区是因为:我数据库安装时在my.ini文件中配置了时区,所以有默认时区,因此:这里我的不会报错 如果自己的MySQL安装目录下的my.ini文件没有配置时区,那么就在这里加上时区配置 |
|
username: root |
|
password: "072413" |
|
6、编写实体类
|
|
|
package cn.xiegongzi.entity; |
|
|
|
import io.swagger.annotations.ApiModel; |
|
import io.swagger.annotations.ApiModelProperty; |
|
import lombok.AllArgsConstructor; |
|
import lombok.Data; |
|
import lombok.NoArgsConstructor; |
|
|
|
import java.io.Serializable; |
|
|
|
|
|
|
|
|
|
|
|
// 表明这个实体类也可以生成到swagger文档中去 即:后台要接收的参数是一个对象时使用 —— 这个东西可以先不加,在做增加、修改时可以用这个测试一下,从而去swagger中看效果 |
|
public class User implements Serializable { |
|
|
|
// 表明:要生成的实体类属性是注解下的这个 |
|
private Integer id; |
|
|
|
|
|
private String username; |
|
|
|
|
|
private String phone; |
|
} |
|
7、编写mapper
|
|
|
package cn.xiegongzi.mapper; |
|
|
|
import cn.xiegongzi.entity.User; |
|
import org.apache.ibatis.annotations.Mapper; |
|
import org.apache.ibatis.annotations.Select; |
|
|
|
import java.util.List; |
|
|
|
|
|
public interface IUserMapper { |
|
|
|
|
|
List<User> findAllUser(); |
|
} |
|
8、编写service接口和实现类
9、编写controller
|
|
|
package cn.xiegongzi.controller; |
|
|
|
import cn.xiegongzi.service.IUserService; |
|
import com.alibaba.fastjson.JSON; |
|
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.RestController; |
|
|
|
|
|
// 表示当前类可以被生成一个swagger文档 , 可以跟参数tags,参数表示:这整个接口类的名字 |
|
public class UserController { |
|
|
|
|
|
private IUserService userService; |
|
|
|
|
|
// @ApiImplicitParam 这个注解是对请求参数做限制用的,如:请求时要求前台传递一个id,那么:在这个注解里面:就可以声明这个参数的类型、 |
|
// 是否为必填..... |
|
// 遵循restful风格 要是使用@RequestMapping的话,会生成多个接口( 即:对应post、get.... ) |
|
|
|
// value这个接口的名字 |
|
// 对这个接口的描述 |
|
public String findAllUser() { |
|
|
|
return JSON.toJSONString( userService.findAllUser() ); |
|
} |
|
} |
|
10、启动项目,测试
结语:
- 以上的内容是入门,其他的注解开发时自行摸索吧!
- 还有一种,比swagger更好,就是:postman,自行下载安装包,安装之后玩一下
作者:紫邪情
出 处:https://www.cnblogs.com/xiegongzi/p/15549226.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置