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. Ubuntu下面删除和卸载软件

    1.卸载nginx 1)首先执行第一条命令查出想关的软件包: dpkg --get-selections | grep nginx 2)开始执行卸载列出的common 和core 这个2个安装包 一个 ...

  2. (25)打鸡儿教你Vue.js

    vue-cli // 全局安装 vue-cli npm install --global vue-cli // 创建一个基于 webpack 模板的新项目 vue init webpack my-pr ...

  3. shell脚本编程基础之文件测试

    文件测试判断条件 -e FILE:测试文件是否存在 -f FILE:测试文件是否为普通文件 -d FILE:测试指定路径是否为目录 -r FILE:测试当前用户对指定文件是否有读权限 -w FILE: ...

  4. linux 日志写入到指定文件中

    php  /data/xxx/aaa.php > test.log 2>&1 >覆盖, >>追加 2>&1 表示不仅命令行正常的输出保存到test. ...

  5. linux系统下常用的打包/解压缩包命令

    此处大概列了常用的解压和打包命令,详细信息需要百度一一对比他们的区别,比如我们在下载软件时就是最好的实践. 用zip举例说明,使用命令压缩时有点是,压缩文件.目录会非常快:如图,我压缩了一个progr ...

  6. 高效率编辑器 Vim——操作篇,非常适合 Vim 新手

    原文地址:https://linuxtoy.org/archives/efficient-editing-with-vim.html vim教程:http://vimcasts.org/ https: ...

  7. 利用Unicode RTLO方法构建恶意文件名

    一:简介 RTLO"字符全名为"RIGHT-TO-LEFTOVERRIDE",是一个不可显示的控制类字符,其本质是unicode 字符."RTLO"字 ...

  8. [WEB安全]XSS命令总结

    一:正常构造方式: 1.无过滤,直接写: <script>alert(1)</script> 2.正常截断: "> <script>alert(1) ...

  9. jackson实现json转换

    第一步.导包.导入jar包或者在maven项目中导入坐标(jackson-annotations:jackson-core:jackson-databind) 第二步.通过无参构造创建核心类Objec ...

  10. 小程序中嵌套的h5页面设置分享转发

    场景描述:当在小程序中打开h5页面时,希望小程序的转发出去的标题,图片,跳转link可以通过h5通信实现自定义. 实现方式:通过h5给小程序通信,发送标题,图片,跳转link等信息,让小程序设置分享. ...