来源: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之最佳实践相关推荐

  1. SpringBoot学习笔记(16)----SpringBoot整合Swagger2

    Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...

  2. 业务规范之springboot整合swagger2

    业务规范(整合swagger2) ###业务规范之springboot整合swagger2 ###业务规范之统一验证 ###业务规范之统一返回体 ###业务规范之统一异常处理和统一响应 二.整合swa ...

  3. springboot整合 swagger2

    springboot整合 swagger2 引入依赖 <!-- swagger --><dependency><groupId>io.springfox</g ...

  4. SpringBoot整合Swagger2教程

    SpringBoot整合Swagger2教程 环境说明 springboot 版本 2.4.4 swagger2 版本 2.9.2 工程准备 创建Springboot工程.这一步不会的可先去Hello ...

  5. Swagger的安装以及SpringBoot整合Swagger2实现SwaggerAPI文档测试

    前言 本篇博客是本人在网上学习Swagger所产出的个人笔记.主要内容有: 1.Swagger的安装 2.Swagger的介绍 3.Swagger2中常用的注解 4.快速上手案例 准备工作:Swagg ...

  6. SpringBoot整合Swagger2

    整合Swagger2 1.Swagger介绍 前后端分离开发模式中,api文档是最好的沟通方式. Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web ...

  7. springboot 整合 swagger2 配置账号密码登录 demo代码

    配置spring security登录可参考: springboot整合spring security安全框架-简单验证账号密码 一.pom文件引入swagger依赖 <!-- swagger2 ...

  8. SpringBoot整合Swagger2实现接口文档

    展示一下 访问方式一 访问地址:http://localhost:8080/swagger-ui.html#/ 首页 详情页 访问方式二 访问地址:http://localhost:8080/doc. ...

  9. SpringBoot 整合 Swagger2 + Knife4j

    文章目录 写在最前面 代码 1. 准备项目 2. 配置类 3. 控制器类(进行测试) 4. 启动器 网页查看效果 写在最前面 SpringBoot 项目,一般会提供一大堆的 Controller 来供 ...

最新文章

  1. MySQL 过滤规则-误解处理
  2. 【通知】有三AI GPU平台上线新功能,GPU/CPU可灵活选择
  3. html导航去下划线,纯CSS实现导航栏下划线跟随的示例代码
  4. (转)swc与swf的区别
  5. 零基础30分钟开启你的快速开发之旅
  6. ML、DL、CNN学习记录5
  7. file_get_contents(php://input)
  8. ElasticSearch 集群监控
  9. python下使用pymongo操作mongodb
  10. 操作系统锁的实现方法有哪几种_Java并发之Monitor实现
  11. 【2017-5-21】问题总结 Session,Cookie,登录状态保持
  12. 手机12306买卧铺下铺技巧_12306火车票如何买下铺 手机12306买下铺技巧
  13. .axf文件_「嵌入式笔记」hex文件、bin文件、axf文件的区别?
  14. 【学习强化学习】五、PPO算法原理及实现
  15. 微信小程序转码机器人----【在线实战】
  16. ChatGPT专业应用:纯英文视频-中英文快速字幕添加
  17. 非华为电脑与华为平板、手机(鸿蒙系统)之间实现多屏协同功能
  18. windows应用启动java -jar
  19. 过来,带你了解什么是物联网?
  20. 前端vue从后台取到数据(数组对象)后遍历给对象添加属性,修改这个属性为什么没有用?

热门文章

  1. ECS(Linux)连接RDS,使用命令行方式连接实例
  2. 简单介绍互联网领域选择与营销方法
  3. 2022-2028中国曝光机市场现状及未来发展趋势
  4. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)
  5. Docker学习(五)-----Docker查看日志
  6. 只有变强大,才能照亮他人
  7. 【Design pattern】设计模式思路总结(二)
  8. LeetCode简单题之唯一元素的和
  9. VS Code 调试 OneFlow
  10. 队列:实用程序服务和数据结构