「快学springboot」16.让swagger帮忙写接口文档
swagger简介
官方的介绍
THE WORLD'S MOST POPULAR API TOOLING
Swagger is the world’s largest framework of API developer tools for the OpenAPI Specification(OAS),
enabling development across the entire API lifecycle, from design and documentation, to test and deployment.
这段话首先告诉大家Swagger是世界上最流行的API工具,并且Swagger的目的是支撑整个API生命周期的开发,包括设计、文档以及测试和部署。使用swagger,可以节省写接口文档的时间,同时也方便对接口进行测试。下面讲解在springboot如何整合swagger。
引入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
配置
新建Swagger2Config.class
/**
* @author Happy
*/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createAdminApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("api")
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("cn.happyjava.springboot"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("系统接口")
.description("测试系统接口")
.version("1.0")
.build();
}
}
这里配置了swagger的基本信息,可以根据具体需要,自定义修改。
效果
把以上两个步骤做完之后,已经可以看到swagger的效果了。打开http://127.0.0.1:8080/swagger-ui.html,效果如下:
这些都是之前写的一些接口
使用swagger调试接口
现在有以下三个类ResultVO.class,SwaggerTestController.class,TestParam.class如下:
@Data
public class ResultVO {
private String result;
private String message;
}
@RestController
@RequestMapping(value = "/api/swagger")
public class SwaggerTestController {
@PostMapping
public ResultVO test(TestParam param) {
return new ResultVO();
}
}
@Data
public class TestParam {
private String username;
}
重启应用,查看效果:
可以看到,接口的请求参数和响应参数,都自动的在swagger文档上列出来了。
点击Try it out,会弹出输入框,我们可以在此输入测试的参数,如下:
输完参数后,点击执行:
这里可以获得响应的结果。
字段描述
虽然这里swagger已经自动帮我们构建了接口文档了,但是却缺少字段的描述,会让前后端合作其实不是那么舒畅。swagger是可以通过注解的形式,为字段添加描述属性的。
实体参数描述
当使用@RequestBody的形式来接口参数时,可以使用ApiModel来标识类,使用ApiModelProperty来标识属性。修改TestParam.class如下:
@Data
@ApiModel(value = "测试参数")
public class TestParam {
@ApiModelProperty(value = "用户名", required = true)
private String username;
}
重启应用,查看效果:
点击Model,可以查看到字段的描述。
字段参数描述
如果我们采用queryString的形式来接受参数,又或者是get请求,这时候@ApiParam注解来描述字段。修改SwaggerTestController,添加如下方法:
@GetMapping
public ResultVO get(@ApiParam(value = "请求id") String requestId) {
return new ResultVO();
}
重启应用查看效果:
响应参数描述
我们也需要对响应的字段进行描述,其实跟实体参数描述里的用法是一致的。修改ResultVO.class如下:
@Data
@ApiModel(value = "响应")
public class ResultVO {
@ApiModelProperty(value = "这是结果")
private String result;
@ApiModelProperty(value = "这是信息")
private String message;
}
重启应用查看效果:
总结
这里讲解了springboot继承swagger,以及使用swagger的注解来描述参数和响应的字段。swagger在描述字段的时候,还有很丰富的用法,具体的api读者可以在需要时查看api文档即可。
「快学springboot」16.让swagger帮忙写接口文档的更多相关文章
- 「快学springboot」集成Spring Security实现鉴权功能
Spring Security介绍 Spring Security是Spring全家桶中的处理身份和权限问题的一员.Spring Security可以根据使用者的需要定制相关的角色身份和身份所具有的权 ...
- 「快学SpringBoot」配置文件的加载顺序和配置项默认值设置
前言 有的时候,配置信息是我们无法在开发过程中就能确定的.比如,给客户开发的项目,客户需要根据自身的情况自定义配置,如数据库配置,加密密钥配置等等.这时候,就需要把配置文件放在外面,让用户自定义配置部 ...
- 「快学springboot」SpringBoot整合freeMark模板引擎
前言 虽然现在流行前后端分离开发和部署,但是有时候还是需要用到服务端渲染页面的.比如:需要考虑到SEO优化等问题的时候,FreeMark其实还是很有作用的.本人的博客本来是用React开发的,但是后来 ...
- 「快学springboot」SpringBoot多环境配置文件
前言 我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml).但是,如果想要把不同的环境(如开发环境,测试环境,生产环境) ...
- spring boot使用swagger生成api接口文档
前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot ...
- Asp.Net Core 轻松学系列-5利用 Swagger 自动生成接口文档
目录 前言 结语 源码下载 前言 目前市场上主流的开发模式,几乎清一色的前后端分离方式,作为服务端开发人员,我们有义务提供给各个客户端良好的开发文档,以方便对接,减少沟通时间,提高开发效率:对 ...
- 从零开始的SpringBoot项目 ( 五 ) 整合 Swagger 实现在线API文档的功能
综合概述 spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于 ...
- Asp.Net Core 轻松学-利用 Swagger 自动生成接口文档
前言 目前市场上主流的开发模式,几乎清一色的前后端分离方式,作为服务端开发人员,我们有义务提供给各个客户端良好的开发文档,以方便对接,减少沟通时间,提高开发效率:对于开发人员来说,编写接口文档 ...
- SpringBoot整合Swagger2,再也不用维护接口文档了!
前后端分离后,维护接口文档基本上是必不可少的工作.一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了.当然这是一种非常理想的状态,实际开发中却很 ...
随机推荐
- Unix套接字接口
简介 套接字是操作系统中用于网络通信的重要结构,它是建立在网络体系结构的传输层,用于主机之间数据的发送和接收,像web中使用的http协议便是建立在socket之上的.这一节主要讨论网络套接字. 套接 ...
- Leader:这样的 Bug 你也写的出来???
Hello~各位读者新年好!不知道大家春节假期是否已延长,小黑哥刚接到通知,假期延长到 2 月 2 号,另外回去之后需要在家办公,自行隔离两周.还没试过在家办公,小黑哥就怕到时候生物钟还没调整过来,一 ...
- 《JavaScript高级程序设计》读书笔记(三)基本概念第六小节理解函数
内容---语法---数据类型---流程控制语句 上一小节---理解函数 本小节 函数--使用function关键字声明,后跟一组参数以及函数体 function functionName(arg0, ...
- 排序算法之冒泡排序的python实现
冒泡排序算法的工作原理如下: 1. 比较相邻的元素.如果第一个比第二个大(升序),就交换他们两个. 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.这步做完后,最后的元素会是最大 ...
- 吴裕雄--天生自然TensorFlow2教程:梯度下降简介
import tensorflow as tf w = tf.constant(1.) x = tf.constant(2.) y = x * w with tf.GradientTape() as ...
- Flexconnect部署
该记录主要用于针对于无线网络中Flexconnect的部署,可能涉及到的有Flexconnect中的组件,如何部署.(注意:在7.2版本以前,Flexconnect叫做HREAP),目前都称作为Fle ...
- Cisco AP-Sniffer模式空口抓包
第一步:WLC/AP侧 配置AP为sniffer模式: 配置提交后,AP会重启,并且将不能发出SSID为clients提供服务. 第二步:一旦AP重新加入WLC,配置AP抓取的信道和抓取后的数据包发 ...
- 手机远控SpyNote教程+软件
链接:https://pan.baidu.com/s/1q0VVSxK0DCJk2VnOg5RgOA 提取码:1okp 生成一个小马界面.可以看到,和以往的远控一样,做好端口映射,定制图标,包名,版本 ...
- Python - unittest打印成功信息
参考 https://stackoverflow.com/questions/36834677/print-success-messages-for-asserts-in-python 总结 clas ...
- Python - 模块中的"if __name__ == '__main__':"
1.1 如果导入的模块除了定义函数之外还中有可以执行代码,那么Python解释器在导入这个模块时就会执行这些代码. module1.py: def foo(): print('module 1') f ...