SpringBoot学习笔记:Swagger实现文档管理

Swagger

  Swagger是一个规范且完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。Swagger的目标是对REST API定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力

集成Swagger管理API文档

项目中集成Swagger

  首先是添加swagger的依赖:

<!--swagger-spring-boot-starter -->
<dependency>
<groupId>com.spring4all</groupId>
<artifactId>swagger-spring-boot-starter</artifactId>
<version>1.9.0.RELEASE</version>
</dependency>

  接着,在启动类中添加@EnableSwagger2Doc注解开启Swagger,如下:

@EnableSwagger2Doc
@SpringBootApplication
public class Application { public static void main(String[] args) {
SpringApplication.run(CodeHelperApplication.class, args);
}
}

使用Swagger生成文档

  Swagger通过注解来生成对应的API,在接口上我们需要加上各种注解来描述这个接口,如

    @ApiOperation(value = " 查找城镇列表 ")
@ApiResponses({@ApiResponse(code = 200,message = "OK",response = String.class)})
@RequestMapping(value = "getTownInfoList.do", method = RequestMethod.POST)
public List<String> getTownInfoList() {
try {
return studentMapper.getListGroup("stu_town");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

  在这里我们使用到了两个注解:

  • @ApiOperation用在方法上,说明方法的作用,添加notes属性可以详细描述接口信息。
  • @ApiResponses用在方法上,说明接口响应的一些信息;@ApiResponses封装了多个@ApiResponse,来为不同的响应码设置不同响应信息。

在线测试接口

  通过 服务器地址:port/swagger-ui.html 来访问Swagger服务,其界面如下:

  

  找到刚刚描述的方法,可以查看接口详情,以及尝试接口调用。  

  

Swagger注解

  本节主要描述一些常用的生成接口文档的注解,上面介绍过的就不说了

@Api

  用在类上,说明该类的作用.

@Api(tags = {"学生信息接口"})
@RestController
public class StudentController {
...
}

@ApiModel

  用在类上,表示对参数类进行说明。

@ApiModel(value = "com.ms.qiandao.model.StudentModel",description = "新增用户参数")
public class StudentModel {
private Integer stu_id;
private String stu_name;
private String stu_sex;
...
}

@ApiModedlProperty

  用在字段上,表示对参数类中的字段进行说明。

@ApiModel(value = "com.ms.qiandao.model.StudentModel",description = "新增用户参数")
public class StudentModel {
@ApiModelProperty(value = "学生ID")
private Integer stu_id;
@ApiModelProperty(value = "学生姓名")
private String stu_name;
@ApiModelProperty(value = "学生性别")
private String stu_sex;
...
}

@ApiParam

  用于对Controller方法中的参数进行说明。

@RequestMapping("cancel.do")
public RegisterCode getById(@ApiParam(value = "学生id",required = true) Integer id) {
...
}

@ApilmplicitParam和@ApilmplicitParams

  用于方法上,为单独的请求参数进行说明,和@ApiParam差不多,只不过是写在方法上面

参考资料

SpringBoot学习笔记:Swagger实现文档管理的更多相关文章

  1. Sharepoint学习笔记—ECM系列—文档列表的Metedata Navigation与Key Filter功能的实现

    如果一个文档列表中存放了成百上千的文档,想要快速的找到你想要的还真不是件容易的事,Sharepoint提供了Metedata Navigation与Key Filter功能可以帮助我们快速的过滤和定位 ...

  2. Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现

    文档集是 SharePoint Server 2010 中的一项新功能,它使组织能够管理单个可交付文档或工作产品(可包含多个文档或文件).文档集是特殊类型的文件夹,它合并了唯一的文档集属性以及文件夹和 ...

  3. 孙鑫MFC学习笔记13:文档

    1.CArchive类保存内存数据 2.CAchive类重载了>>与<<操作符,类似C++文件流 3.在OnNewDocument中通过SetTitle设置标题 4.字符串资源 ...

  4. 学习笔记:javascript 文档对象(document)

    1.documnet函数 方法 描述 close() 关闭用 document.open() 方法打开的输出流,并显示选定的数据. getElementById() 返回对拥有指定 id 的第一个对象 ...

  5. HTML学习笔记4:文档申明和编码标签

    ①文档申明     作用:为了使浏览器更好的显示HTML文件,必须告知浏览器你的文件为HTML     语法:<!DOCTYPE html> 声明必须放在HTML文档第一行 声明不是HTM ...

  6. Python学习笔记010——函数文档字符串

    函数文档字符串documentation string (docstring)是在函数开头,用来解释其接口的字符串.简而言之:帮助文档 包含函数的基础信息 包含函数的功能简介 包含每个形参的类型,使用 ...

  7. 前端学习笔记之CSS文档流

    先引用一段W3C的文档: 9.3 Positioning schemes In CSS 2.1, a box may be laid out according to three positionin ...

  8. php学习笔记:读取文档的内容,利用php修改文档内容

    直接上代码 <?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/9/10 0010 * Time: 20:27 ...

  9. #Linux学习笔记# Linux在线帮助文档man page

    man是manual的简称,表示手册页.Linux系统的帮助手册页是按照章节(SECTION)来存储了.man手册页分为下面几个章节. 1 普通命令 2 内核提供的系统调用 3 库调用(C库函数) 4 ...

随机推荐

  1. sql server vs mysql

    1.中文: my.ini [mysqld] character-set-server=utf8 character-set-client=utf8 data\testdb\db.opt default ...

  2. Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式 Debian9.5下实现

    iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...

  3. 洛谷 P4058 [Code+#1]木材 题解

    P4058 [Code+#1]木材 题目描述 有 \(n\) 棵树,初始时每棵树的高度为 \(H_i\),第 \(i\) 棵树每月都会长高 \(A_i\)​.现在有个木料长度总量为 $ S$ 的订单, ...

  4. Processing 中玩增强现实 Argument Reality

    其实2009年Processing就能做AR了,只是我不知道而已~ 需要以下几个东西: 1.JMyron 2.GSVideo 3.nyar4psg 4.Picking 5.OBJLoader 或者大伙 ...

  5. 自主设计BootLoader框架笔记一栏

  6. 洛谷P1514引水入城

    题目 搜索加贪心其实并不需要用到\(DP\),搜索也是比较简单地搜索. 对于每个第一行的城市进行类似于滑雪那道题的搜索,然后记录最后一行它所覆盖的区间,易得一个一行城市只会有一个区间.然后可以在最后进 ...

  7. 《挑战30天C++入门极限》入门教程:实例详解C++友元

        入门教程:实例详解C++友元 在说明什么是友元之前,我们先说明一下为什么需要友元与友元的缺点: 通常对于普通函数来说,要访问类的保护成员是不可能的,如果想这么做那么必须把类的成员都生命成为pu ...

  8. 「雅礼集训 2017 Day10」拍苍蝇

    传送门 Description 有一天,小 A 的母亲对他家里的卫生状况非常不满意,他的房间里有非常多的苍蝇.在母亲的威逼利诱下,小 A 拿起了苍蝇拍去消灭家里的苍蝇.然而,小 A 以前从来没有亲手消 ...

  9. 深入浅出MYSQL数据库—思维导图[附下载链接]

    源文件下载地址:https://github.com/JluTiger/schoolRecruit2020

  10. 1、ES6声明变量的方式

    1.es5的声明方式var的问题 1)是var在同一个作用域内部,是可以重复声明一个变量的,后面的会把前面的覆盖掉 2)var存在变量提升到的问题,就是在使用var声明变量前是可以先使用此变量的 2. ...