springboot整合swagger2之最佳实践
来源:https://blog.lqdev.cn/2018/07/21/springboot/chapter-ten/
Swagger
是一款RESTful
接口的文档在线自动生成、功能测试功能框架。
一个规范和完整的框架,用于生成、描述、调用和可视化RESTful
风格的Web服务,加上swagger-ui
,可以有很好的呈现。
SpringBoot集成
- pom
<!--swagger -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.8.0</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.8.0</version>
</dependency>
- 编写配置文件(SwaggerConfig.java)
@EnableSwagger2
@Configuration
public class SwaggerConfig {//是否开启swagger,正式环境一般是需要关闭的,可根据springboot的多环境配置进行设置@Value(value = "${swagger.enabled}")Boolean swaggerEnabled;@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())// 是否开启.enable(swaggerEnabled).select()// 扫描的路径包.apis(RequestHandlerSelectors.basePackage("cn.lqdev.learning.springboot.chapter10"))// 指定路径处理PathSelectors.any()代表所有的路径.paths(PathSelectors.any()).build().pathMapping("/");}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("SpringBoot-Swagger2集成和使用-demo示例").description("oKong | 趔趄的猿")// 作者信息.contact(new Contact("oKong", "https://blog.lqdev.cn/", "499452441@qq.com")).version("1.0.0").build();}
}
设置注解
controller
- 类:@Api(value = "预订业务逻辑接口", description = "预订业务逻辑接口",tags="用户API")
- 方法:@ApiOperation(value = "保存预订数据", response = 本类.class)
- 路径参数/{id}:@ApiImplicitParam(name="id",value="查询ID",required=true)
- 普通参数:@ApiParam(name = "id", value = "预订食品信息id", required = true)
entity
- 类名:@ApiModel(value = "记账凭证详情", description = "记账凭证详情")
- 类属性:@ApiModelProperty(name = "id", value = "记账凭证详情ID",dataType="String",example="1020332806740959233" )
访问:http://127.0.0.1:8080/swagger-ui.html
Swagger常用属性说明
作用范围 | API | 使用位置 |
---|---|---|
对象属性 | @ApiModelProperty | 用在出入参数对象的字段上 |
协议集描述 | @Api | 用于controller类上 |
协议描述 | @ApiOperation | 用在controller的方法上 |
Response集 | @ApiResponses | 用在controller的方法上 |
Response | @ApiResponse | 用在 @ApiResponses里边 |
非对象参数集 | @ApiImplicitParams | 用在controller的方法上 |
非对象参数描述 | @ApiImplicitParam | 用在@ApiImplicitParams的方法里边 |
描述返回对象的意义 | @ApiModel | 用在返回对象类上 |
常用的注解@Api
、@ApiOperation
、@ApiModel
、@ApiModelProperty
示例中有进行标注,对于其他注解,大家可自动谷歌,毕竟常用的就这几个了。
有了swagger之后,原本一些post请求需要postman这样的调试工具来进行发起,而现在直接在页面上就可以进行调试了,是不是很爽!
对于服务的调用者而已,有了这份api文档也是一目了然,不需要和后端多少沟通成本,按着api说明进行前端开发即可。
springboot整合swagger2之最佳实践相关推荐
- SpringBoot学习笔记(16)----SpringBoot整合Swagger2
Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...
- 业务规范之springboot整合swagger2
业务规范(整合swagger2) ###业务规范之springboot整合swagger2 ###业务规范之统一验证 ###业务规范之统一返回体 ###业务规范之统一异常处理和统一响应 二.整合swa ...
- springboot整合 swagger2
springboot整合 swagger2 引入依赖 <!-- swagger --><dependency><groupId>io.springfox</g ...
- SpringBoot整合Swagger2教程
SpringBoot整合Swagger2教程 环境说明 springboot 版本 2.4.4 swagger2 版本 2.9.2 工程准备 创建Springboot工程.这一步不会的可先去Hello ...
- Swagger的安装以及SpringBoot整合Swagger2实现SwaggerAPI文档测试
前言 本篇博客是本人在网上学习Swagger所产出的个人笔记.主要内容有: 1.Swagger的安装 2.Swagger的介绍 3.Swagger2中常用的注解 4.快速上手案例 准备工作:Swagg ...
- SpringBoot整合Swagger2
整合Swagger2 1.Swagger介绍 前后端分离开发模式中,api文档是最好的沟通方式. Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web ...
- springboot 整合 swagger2 配置账号密码登录 demo代码
配置spring security登录可参考: springboot整合spring security安全框架-简单验证账号密码 一.pom文件引入swagger依赖 <!-- swagger2 ...
- SpringBoot整合Swagger2实现接口文档
展示一下 访问方式一 访问地址:http://localhost:8080/swagger-ui.html#/ 首页 详情页 访问方式二 访问地址:http://localhost:8080/doc. ...
- SpringBoot 整合 Swagger2 + Knife4j
文章目录 写在最前面 代码 1. 准备项目 2. 配置类 3. 控制器类(进行测试) 4. 启动器 网页查看效果 写在最前面 SpringBoot 项目,一般会提供一大堆的 Controller 来供 ...
最新文章
- MySQL 过滤规则-误解处理
- 【通知】有三AI GPU平台上线新功能,GPU/CPU可灵活选择
- html导航去下划线,纯CSS实现导航栏下划线跟随的示例代码
- (转)swc与swf的区别
- 零基础30分钟开启你的快速开发之旅
- ML、DL、CNN学习记录5
- file_get_contents(php://input)
- ElasticSearch 集群监控
- python下使用pymongo操作mongodb
- 操作系统锁的实现方法有哪几种_Java并发之Monitor实现
- 【2017-5-21】问题总结 Session,Cookie,登录状态保持
- 手机12306买卧铺下铺技巧_12306火车票如何买下铺 手机12306买下铺技巧
- .axf文件_「嵌入式笔记」hex文件、bin文件、axf文件的区别?
- 【学习强化学习】五、PPO算法原理及实现
- 微信小程序转码机器人----【在线实战】
- ChatGPT专业应用:纯英文视频-中英文快速字幕添加
- 非华为电脑与华为平板、手机(鸿蒙系统)之间实现多屏协同功能
- windows应用启动java -jar
- 过来,带你了解什么是物联网?
- 前端vue从后台取到数据(数组对象)后遍历给对象添加属性,修改这个属性为什么没有用?