@enableswagger2注解(swagger 注解)

@enableswagger2注解(swagger 注解)在当下这个前后端分离的技术趋势下 前端工程师过度依赖后端工程师的接口和数据 给开发带来了两大问题 这是很多公司前后端分离之后带来的困扰 那怎么来解决这些问题 问题一的一般解决方案 后端团队共同维护一个在线文档 每次改接口再去改对应的文档 但难免会遗漏 花的大力气但却效果平平 问题二的一般解决方案 自己搭建一个 Mock 服务器 然后一个接口一个接口手动去录规则 还是一个费力的体力活 那有没有最优的解决方案 来解决以上两个问题呢 答案是肯定的



在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题:

这是很多公司前后端分离之后带来的困扰,那怎么来解决这些问题?

问题一的一般解决方案:后端团队共同维护一个在线文档,每次改接口再去改对应的文档,但难免会遗漏,花的大力气但却效果平平。

问题二的一般解决方案:自己搭建一个Mock服务器,然后一个接口一个接口手动去录规则,还是一个费力的体力活。

那有没有最优的解决方案,来解决以上两个问题呢?答案是肯定的,那就是将要登场的“Swagger”和“Easy Mock”。

Swagger是全球最流行的接口文档自动生成和测试的框架,几乎支持所有的开发语言。

Swagger官网地址:https://swagger.io/

Easy Mock是一个可视化,并且能快速生成 模拟数据 的持久化服务。

Easy Mock能一键导入Swagger所有接口,省去了手动录制接口的麻烦,而且能够完美的适配Swagger中的代码注释,可谓开发利器。

Easy Mock数据是保存在云端的,而且可以创建团队项目,可以真正的实现前端脱离后端进行项目开发。

接下来一起来看看怎么在项目中集成Swagger和Easy Mock吧。

本文介绍的Swagger是基于Spring Boot框架的,一起来看具体的实现步骤。

配置pom.xml,添加如下代码:

其中:

更多版本请访问:

springfox-swagger2:http://mvnrepository.com/artifact/io.springfox/springfox-swagger2

springfox-swagger-ui:http://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui

在源码的根目录也就是Appliction.java的同级目录,创建Java类“SwaggerConfig.java”(命名无所谓),代码如下:

其中“@ConditionalOnExpression”为Spring的注解,用户是否实例化本类,用于是否启用Swagger的判断(生产环境需要屏蔽Swagger)。

是否启用Swagger是在application.properties文件里配置的,配置如下:

swagger.enable=true

生产环境禁用,设置为false即可。

完成以上三个步骤,已经完成了Spring Boot对Swagger的集成,但是文档不够友好,比如类、接口的中文说明、参数的说明,是没有的,需要在代码中完成。

如下代码:

写完代码运行项目,在浏览器输入:http://localhost:8080/swagger-ui.html 查看添加注释的效果,如下图:

其中@Api是用来描述类的,@ApiOperation是用来描述方法的,@ApiImplicitParam是用来描述参数的,更多注解说明请看下文。

示例源码下载:https://github.com/vipstone/springboot-example/tree/master/springboot-swagger

我们现在已经对Swagger有了初步的认识,本节重点来看Swagger注解的使用。

Swagger注解的作用是给接口添加注释的。

@Api:用来描述类的,属性如下:

代码示例:

@Api(tags = "文章接口")

@ApiOperation:用来描述方法的,属性如下:

代码示例:

@ApiOperation(value = "获取所有文章", notes = "查询分页数据")

效果如下图:

@ApiImplicitParams:描述多参数

@ApiImplicitParam:描述单参数

属性如下:

代码示例:

@ApiImplicitParams({ @ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "form"), @ApiImplicitParam(name = "age", value = "年龄", required = true, paramType = "form"), })

效果如下图:

@ApiModel:实体类名描述,属性如下:

@ApiModelProperty:字段描述,属性如下:

示例如下:

Easy Mock是在线的Mock(模拟)服务器,注册账号即可使用,数据存储云端,使用简单不需要在本地进行任何配置,具体操作步骤如下文。

浏览器输入:https://easy-mock.com/login 注册账号

进入管理页面之后,演示个人演示项目(默认创建的可以直接拿来用),如下图:

进入接口列表,设置=>Swagger Docs API选择Upload(本地文件上传),如下图:

浏览器访问:http://localhost:8080/v2/api-docs 就看到项目的所有接口JSON格式的,右键另存为文件,如下图:

继续4.2的操作,上传刚刚保存的JSON文件到Easy Mock。

保存完JSON数据之后就返回到项目的设置页了,这个时候“同步Swagger”就看到所有接口了。如下图:

到此为所有的接口已经导入了,可以接口列表右侧的复制按钮,进行愉快的调用了。

这个时候就可以完全脱离后端了,接口详情,可以看出Easy Mock完美识别了Swagger注释也有了,如下图:

接口的调用没问题,接下来就是修改操作数据了,右侧的相应接口的修改按钮,如下图:

进入编辑页面,你现在编辑的数据就是接口要返回的数据,数据是JSON格式的,并且是在线保存云端,无须担心数据丢失,如下图:

编辑完直接更新接口即可,注意编辑页面还有一个预览按钮,点入可以模拟请求,这下连Postman都省了,效果如下:

到此为止所有内容已经演示完了,我们解决前后端分离带来接口管理难、数据操作难的问题。自动生成接口文档、一键模拟数据,让我们不再依赖后端,只专注前端的业务,等后端把接口写完之后,再进行联合调试就可以了,这样我们就不费吹灰之力搞定了所有难题,并且灵活的配置让我们可以不影响和污染生产环境,生产环境设置禁用Swagger即可,并且有了预览功能之后我们甚至连Postman都省了。

参考资料

swagger2 注解说明:https://blog.csdn.net/xiaojin21cen/article/details/

今天的文章 @enableswagger2注解(swagger 注解)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-03 19:06
下一篇 2024-12-03 18:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/77112.html