Spring Boot 中使用 Swagger
前后端分离开发,后端需要编写接⼝说明⽂档,会耗费⽐较多的时间。
swagger 是⼀个⽤于⽣成服务器接⼝的规范性⽂档,并且能够对接⼝进⾏测试的⼯具。
作用
- ⽣成接⼝说明⽂档
- 对接⼝进⾏测试
使用步骤
添加依赖
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
写配置类
SwaggerConfig/**
* SwaggerConfig 接口文档配置类
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig { /**
* 配置接口文档生成规则
*/
@Bean
public Docket getDocket() {
// 设置文档生成规则
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) // 设置文档信息
.select()
// 设置哪个包下的类需要生成文档
.apis(RequestHandlerSelectors.basePackage("com.luis.fmmall.controller"))
.paths(PathSelectors.any()) // 定义哪些路径的接口需要生成文档
.build(); } /**
* 设置文档信息
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("xxx接口文档")
.description("这里是相关描述")
.version("1.0")
.contact(new Contact("luis",
"https://www.cnblogs.com/luisblog",
"xxx@qq.com"))
.build();
}
}
在控制器类上使用 Swagger 的注解进行相关说明
示例如下:
@RestController
@RequestMapping("/user")
@Api(tags = "用户管理", value = "提供用户的登陆、注册、修改等功能") //类说明
public class UserController { @Resource
private UserService userService; @GetMapping("/login")
@ApiOperation(value = "登陆验证", notes = "用户登陆检查") //方法名说明
@ApiImplicitParams({ //参数说明
@ApiImplicitParam(dataType = "string", name = "username", value = "用户名", required = true),
@ApiImplicitParam(dataType = "string", name = "password", value = "用户密码", required = false, defaultValue = "123")
})
public ResultVo login(@RequestParam("username") String name,
@RequestParam(value = "password", defaultValue = "123") String pwd) {
return userService.checkLogin(name, pwd);
}
}
启动 SpringBoot 应用,访问
http://localhost:8080/swagger-ui.html效果如下:

常用注解说明
@Api:类注解,使用在控制器类上,对类进行说明控制器类 UserController 示例:
@Api(tags = "用户管理", value = "提供用户的登陆、注册、修改等功能") //类说明
public class UserController {
}
@ApiOperation:方法注解,使用在方法上,对方法名进行说明@ApiImplicitParam和@ApiImplicitParams:方法注解,使用在方法上,对方法的形参进行说明单个形参使用
@ApiImplicitParam,多个形参使用@ApiImplicitParams控制器类 UserController 的 login 方法示例:
@GetMapping("/login")
@ApiOperation(value = "登陆验证", notes = "用户登陆检查") //方法名说明
@ApiImplicitParams({ //参数说明
@ApiImplicitParam(dataType = "string", name = "username", value = "用户名", required = true),
@ApiImplicitParam(dataType = "string", name = "password", value = "用户密码", required = false, defaultValue = "123")
})
public ResultVo login(@RequestParam("username") String name,
@RequestParam(value = "password", defaultValue = "123") String pwd) {
return userService.checkLogin(name, pwd);
}
@ApiModel和@ApiModelProperty:当接⼝的形参或返回值为对象类型时,在实体类中添加此注解说明接口的返回值为 ResultVo 对象示例:
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ResultVo 对象", description = "返回给前端的封装数据") //返回的类说明
public class ResultVo { // 响应给前端的状态码
@ApiModelProperty("响应状态码") //属性说明
private int code; // 响应给前端的提示信息
@ApiModelProperty("提示信息") //属性说明
private String msg; // 响应给前端的数据
@ApiModelProperty("数据") //属性说明
private Object data;
}
接口的形参为 User 实体对象示例:
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "User 对象",description = "⽤户/买家信息")
public class User {
@ApiModelProperty(dataType = "int",required = false)
private int userId;
@ApiModelProperty(dataType = "String",required = true, value = "⽤
户注册账号")
private String userName;
@ApiModelProperty(dataType = "String",required = true, value = "⽤
户注册密码")
private String userPwd;
@ApiModelProperty(dataType = "String",required = true, value = "⽤
户真实姓名")
private String userRealname;
@ApiModelProperty(dataType = "String",required = true, value = "⽤
户头像url")
private String userImg;
}
@ApiIgnore:接⼝⽅法注解,添加此注解的⽅法将不会⽣成到接⼝⽂档中
swagger-ui 插件
发现一个规律,越学到最后,越是有惊喜,有不有?
swagger-ui 插件是一款 UI 美化插件,是基于 swagger 的。
之前使用的默认 swagger 文档和调试页面如果使用起来不太顺畅,可以试试这款 swagger-ui 插件。
使用
添加依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.6</version>
</dependency>
重启 SpringBoot 应用,访问
http://localhost:8080/doc.html效果如下:



还等什么,赶紧装插件去~
Spring Boot 中使用 Swagger的更多相关文章
- Spring Boot中使用Swagger CodeGen生成REST client
文章目录 什么是Open API规范定义文件呢? 生成Rest Client 在Spring Boot中使用 API Client 配置 使用Maven plugin 在线生成API Spring B ...
- spring boot 中使用swagger 来自动生成接口文档
1.依赖包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swa ...
- spring boot 中使用swagger
一.pom.xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox ...
- 【swagger】1.swagger提供开发者文档--简单集成到spring boot中【spring mvc】【spring boot】
swagger提供开发者文档 ======================================================== 作用:想使用swagger的同学,一定是想用它来做前后台 ...
- Spring Boot中使用Swagger2构建强大的RESTful API文档
由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这 ...
- Spring Boot中使用Swagger2构建API文档
程序员都很希望别人能写技术文档,自己却很不愿意写文档.因为接口数量繁多,并且充满业务细节,写文档需要花大量的时间去处理格式排版,代码修改后还需要同步修改文档,经常因为项目时间紧等原因导致文档滞后于代码 ...
- 在Spring Boot中使用swagger-bootstrap-ui
在Spring Boot中使用swagger-bootstrap-ui swagger-bootstrap-ui是基于swagger接口api实现的一套UI,因swagger原生ui是上下结构的,在浏 ...
- Spring Boot中使用Swagger2构建RESTful APIs
关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API. S ...
- Spring Boot中使用Swagger2自动构建API文档
由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这 ...
随机推荐
- ELK技术-IK-中文分词器
1.背景 1.1 简介 ES默认的分词器对中文分词并不友好,所以一般会安装中文分词插件,以便能更好的支持中文分词检索. 本例参考文档:<一文教你掌握IK中文分词> 1.2 IK分词器 IK ...
- 阿里云CentOS7安装K8S
1. 在阿里云山申请三台云服务器 1.1 环境准备 完成配置后的信息 服务器IP 操作系统 CPU 内存 硬盘 主机名 节点角色 172.18.119.145 centos7 2 4G 50G k8s ...
- 华南理工大学 Python第4章课后小测-1
1.(单选)下面程序的输出结果是: for c in "ComputerScience": print(c,end="") if c=="S" ...
- 国产CPLD(AGM1280)试用记录——做个SPI接口的任意波形DDS [原创www.cnblogs.com/helesheng]
我之前用过的CPLD有Altera公司的MAX和MAX-II系列,主要有两个优点:1.程序存储在片上Flash,上电即行,保密性高.2.CPLD器件规模小,成本和功耗低,时序不收敛情况也不容易出现.缺 ...
- aspnetcore6.0源代码编译调试
虽然编译源码折腾了几个时间(卡在restore),最后还是跑起来了aspnetcore6.0mvc源码项目,下面说步骤,前提是网络能连外,对于不能连外的懒得折腾. 第一步 电脑找个地克隆下GitHub ...
- HTTPS安全加固配置最佳实践指南
转载自:https://www.bilibili.com/read/cv16067729?spm_id_from=333.999.0.0 0x02 HTTPS安全加固指南 描述: 当你的网站上了 HT ...
- 使用nginx代理nexus,不是/根路径
location /nexus/ { proxy_pass http://192.168.0.218:8081/; proxy_set_header Host $host:$server_port; ...
- Docker 查看容器映射路径
使用以下命令:container_name 是容器的名字,也可以写容器的ID. docker inspect container_name | grep Mounts -A 20 docker ins ...
- 记录一次Bitbucket鉴权的坑
目录 发生了什么 什么原因 如何解决 总结 发生了什么 今天首次在Fedora上使用git,因为没有小王八(TortoiseGit)帮助,其过程异常焦灼-- 反正经过一系列折腾,我在本地新建了一个项目 ...
- .Net CLR GC plan_phase二叉树和Brick_table
楔子 别那么懒,勤快点.以下取自CLR PreView 7.0. 主题 GC计划阶段(plan_phase)主要就两个部分,一个是堆里面的对象构建一颗二叉树(这颗二叉树的每个节点包含了诸如对象移动信息 ...