当下的Web项目大都采用前后端分离+分布式微服务的架构。前后端分离式的开发中,前端开发人员要与后端开发人员协商通信接口,约定接口规范。因此对于开发人员来说能够维持一份及时更新且完整全面的API文档会大大提高开发效率。传统意义上的文档都是后端开发人员手动编写的,相信大家也都知道这种方式很难保证文档的及时性,这种文档久而久之也就会失去其参考意义,反而还会加大我们的沟通成本。而 Swagger 给我们提供了一个全新的维护 API 文档的方式。

Swagger的特性

  1. 代码发生更正时,文档也会自动的更正。
  2. 跨语言,Swagger支持40种语言。
  3. Swagger-UI可以提供一份交互式的API文档。
  4. 可以与相关自动化测试软件结合使用。

Swagger与SpringBoot结合

准备好SpringBoot的基本环境后,通过Maven导入Swagger依赖。

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>

Swagger-UI Maven坐标,使用Swagger-UI可以在项目中可视化的展示API文档。

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>

在SpringBoot项目中配置Swagger

@Configuration
@EnableSwagger2
public class BeansConfig
{ @Bean
public Docket api()
{
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(new ApiInfo("文档标题", "文档的描述", "文档版本号", "Terms",
new Contact("姓名", "个人主页", "邮箱"),
"Apache", "http://www.apache.org", Collections.emptyList()));
} }

这样你就可以在你的项目中使用Swagger了,项目启动之后,在浏览器地址栏输入localhost:(服务端口号)/swagger-ui.html就可以可视化的查看项目中的API接口信息。

Swagger相关注解

同时你也可以使用相关注解对一些API接口进行解释说明,这些解释说明最终会显示在API文档上。

  1. 在控制器上使用@Api注解可以对控制器增加描述和标签信息
@Api(tags="中层互评控制器", description="中层互评相关API接口信息")
public class MiddleLevelEvaluationController
{}
注解属性 类型 描述
tags String[] 为控制器添加标签
description String 为控制器添加描述
  1. 通过在接口方法上增加 @ApiOperation 注解来展开对接口的描述,当然这个注解还可以指定很多内容。
@ApiOperation("新增用户接口")
@PostMapping("/add")
public boolean addUser(@RequestBody User user)
{
return false;
}
注解属性 类型 描述
value String 接口说明
notes String 接口发布说明
tages String[] 标签
response Class<?> 接口返回类型
httpMethod String 请求的方式
  1. 实体描述,可以通过ApiModel@ApiModelProperty对API中所涉及的实体对象进行描述
@ApiModel("用户实体")
public class User
{
@ApiModelProperty("用户 id")
private int id;
}

@ApiModelProperty注解属性

注解属性 类型 描述
value String 字段说明
name String 重写字段名称
dateType String 重写字段类型
required boolean 是否必填
example String 举例说明
hidden boolean 是否在文档中隐藏该字段
allowEmptyValue boolean 是否允许为空
allowableValues String 该字段允许的值,一般用于可枚举的字段
  1. 忽略API注解@ApiIgnore.

SpringBoot整合Swagger初探的更多相关文章

  1. SpringBoot 整合swagger

    springBoot 整合swagger 1.pom.xml 配置 <dependency> <groupId>io.springfox</groupId> < ...

  2. SpringBoot整合Swagger和Actuator

    前言 本篇文章主要介绍的是SpringBoot整合Swagger(API文档生成框架)和SpringBoot整合Actuator(项目监控)使用教程. SpringBoot整合Swagger 说明:如 ...

  3. 【SpringBoot | Swagger】SpringBoot整合Swagger

    SpringBoot整合Swagger 1. 什么是Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.简单说就是项目跑起来了, ...

  4. springboot整合swagger。完爆前后端调试

    web接口开发时在调试阶段最麻烦的就是参数调试,前端需要咨询后端.后端有时候自己也不是很了解.这时候就会造成调试一次接口就需要看一次代码.Swagger帮我们解决对接的麻烦 springboot接入s ...

  5. SpringBoot整合Swagger实战

    源码地址:https://github.com/laolunsi/spring-boot-examples 目前SpringBoot常被用于开发Java Web应用,特别是前后端分离项目.为方便前后端 ...

  6. SpringBoot整合Swagger测试api构建

    @Author:SimpleWu 什么是Swagger? Swagger是什么:THE WORLD'S MOST POPULAR API TOOLING 根据官网的介绍: Swagger Inspec ...

  7. SpringBoot整合swagger

    Swagger使用 Swagger有什么用? swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPI Specification,OAS)为基础, 对整个API的开发周 ...

  8. springboot入门系列(二):SpringBoot整合Swagger

    上一篇<简单搭建SpringBoot项目>讲了简单的搭建SpringBoot 项目,而 SpringBoot 和 Swagger-ui 搭配在持续交付的前后端开发中意义重大,Swagger ...

  9. SpringBoot整合Swagger框架 ,并设置接口请求头token默认值

      引入maven依赖 <!-- swagger2--> <dependency> <groupId>io.springfox</groupId> &l ...

随机推荐

  1. 【ORA】ORA-00371: not enough shared pool memory

    今天rac中有一个节点asm实例起不来包了ora-000371的错误,错误贴在下面: [oracle@rac2 dbs]$ srvctl start asm -n rac2 PRKS-1009 : F ...

  2. 【Oracle】10g查看trace生成文件位置及文件名称

    select  u_dump.value || '/' ||  db_name.value || '_ora_' ||  v$process.spid ||  nvl2(v$process.trace ...

  3. SDUST数据结构 - chap3 栈和队列

    一.判断题: 二.选择题: 三.编程题: 7-1 一元多项式求导: 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 代码: #include<bits/ ...

  4. cmd的终结工具cmder

    常用快捷键 win+alt+t  打开任务设置窗口 win+alt+k 打开快捷键设置窗口 自定义屏幕分割窗口快捷键: ctl+shift+s 水平按50%比例分割 ctl+shift+v 垂直按50 ...

  5. python中IF语句容易犯的错误CASE

    python中没有switch   case类似的语句,但是下面的IF语句却与之类似,却又不同: A = B = C = D = E = 1 if A == 1: B=2 elif B ==2: C= ...

  6. CMU数据库(15-445)实验2-B+树索引实现(下+课上笔记)

    4. Index_Iterator实现 这里就是需要实现迭代器的一些操作,比如begin.end.isend等等 下面是对于IndexIterator的构造函数 template <typena ...

  7. SpringIOC的注解应用

    SpringIOC的注解应用 ​ 在之前的项目中,我们都是通过xml文件进行bean或者某些属性的赋值,其实还有另外一种注解的方式,在企业开发中使用的很多,在bean上添加注解,可以快速的将bean注 ...

  8. 初识JavaScript和jQuery

    JavaScript 1.特性 ①脚本语言.JavaScript是一种解释型的脚本语言,C.C++.Java等语言先编译后执行, 而JavaScript是在程序的运行过程中逐行进行解释. ②基于对象. ...

  9. Python的交互模式和直接运行.py文件有什么区别

    使用文本编辑器 - 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/1016959663602400/1017024645952992 直接输入python进入交互 ...

  10. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...