「快学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,再也不用维护接口文档了!
前后端分离后,维护接口文档基本上是必不可少的工作.一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了.当然这是一种非常理想的状态,实际开发中却很 ...
随机推荐
- AliWareMQ
mq配置文件(Spring) 主要是顺序消息的配置,以及多实例的配置(需要在控制台配置p/c) <?xml version="1.0" encoding="UTF- ...
- 网络辅助北斗/GPS位置服务平台业务量突破10亿次
导读 北斗卫星导航系统日渐成熟,相关服务也在逐步丰富.深入.为了推动北斗定位功能在手机中的普及,中国信息通信研究院2017年就发布了网络辅助北斗/GPS位置服务平台,支持95%以上商用芯片及终端的北斗 ...
- Go_排序
package main import ( "fmt" "sort" "math/rand" ) //1.声明Hero结构体 type He ...
- 使用JavaScript获取样式的属性值
1 . 在js中可以使用style属性来获取样式的属性值(只能获取内联样式的属性值) 语法格式为: HTML元素.style.样式属性; 2 . 在IE浏览器中,使用currentStyle来获取 ...
- 页面弹窗toast和加载loading
create-at 2019-04-04 都采用单例模式,原生js实现 兼容老版本浏览器内核,请将用es6语法的地方作修改 loading 加载 代码: 样式全部通过js创建style标签注入head ...
- 吴裕雄--天生自然TensorFlow2教程:激活函数及其梯度
import tensorflow as tf a = tf.linspace(-10., 10., 10) a with tf.GradientTape() as tape: tape.watch( ...
- Cisco AP-如何调整LAP信道
GUI方法: CLI的方法:根据对应的接口去调整信道,信道带宽,传输功率等信息吧.(Cisco Controller) >config slot 0 antenna Configures the ...
- day 12 zuoye
复习 # 函数 -- 2天 # 函数的定义和调用 # def 函数名(形参): #函数体 #return 返回值 #调用 函数名(实参) # 站在形参的角度上 : 位置参数,*args,默认参数(陷阱 ...
- python开发环境搭建及编辑器选择与安装
内容来源:https://www.cnblogs.com/sanzangTst/p/7278337.html https://www.cnblogs.com/sanzangTst/p/7282154. ...
- iOS 根据域名查询 IP 地址
在 iOS 开发中,如果需要知道网站的 IP 地址: #include <netdb.h> #include <arpa/inet.h> NSString *webSiteSt ...