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. img src防缓存

    //加时间戳防缓存 var imgurl = "/pcms/headImg/${sessionScope.accountInfo.accountId}_cut.jpg?time=" ...

  2. 【转发】c#做端口转发程序支持正向连接和反向链接

    可以通过中转server来连接sql server,连接的时候用ip,port,不是冒号,是逗号 但试过local port 21想连接AS400的FTP却不成功...为咩涅... https://w ...

  3. learning java 字符串常用操作

    // 字符串索引取值 "; System.)); // 字符串比较 "; "; "; System.out.println(s1.compareTo(s2)); ...

  4. mysqli的方法测试小结

    <?php class MysqlController extends ControllerBase { public $config = array(); public $mysql = NU ...

  5. PHP安装mysql.so扩展及相关PHP.ini 配置参数说明

    在PHP中mysql_connect模块已经逐渐被弃用,我在搭建环境时也没有再安装mysql扩展,但是今天在维护一个老项目时,出现报错 Fatal error: Uncaught Error: Cal ...

  6. 2017.10.7 国庆清北 D7T1 计数

    题目描述 给出m个数a[1],a[2],…,a[m] 求1~n中有多少数不是a[1],a[2],…,a[m]的倍数. 输入输出格式 输入格式: 输入文件名为count.in. 第一行,包含两个整数:n ...

  7. python 之 序列 常用方法

  8. 28、对多次使用的RDD进行持久化或Checkpoint

    一.图解 二.说明 如果程序中,对某一个RDD,基于它进行了多次transformation或者action操作.那么就非常有必要对其进行持久化操作,以避免对一个RDD反复进行计算. 此外,如果要保证 ...

  9. (1)React的开发

    1.React项目架构搭建 2.JSX语法 3.React组件化开发 4.React组件间通信 5.React中的事件 6.React代码优化 7.React中组件的样式修饰 React简介及基础语法 ...

  10. (14)打鸡儿教你Vue.js

    重构 "代码重构" 为什么要进行重构 提高代码的可读性和可维护性 代码中存在着重复的代码 存在过大的类或过长的方法 强依赖.紧耦合的结构 运算逻辑难以理解 代码不能清晰 统一的编码 ...