SpringBoot整合Swagger2教程

  • 环境说明

springboot 版本 2.4.4
swagger2 版本 2.9.2

  • 工程准备

创建Springboot工程。这一步不会的可先去HelloWorld,传送门
导入swagger2相关maven依赖

        <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>
  • 配置Swagger2

     我一进门就看见常威在打来福,万物皆对象,万物皆可config没得说,先来一个Swagger2Config并创建Docket实例丢给Spring容器
    
@EnableSwagger2
@Configuration
public class Swagger2Config {@Beanpublic Docket docket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(this.apiInfo()).groupName("山河项目组").enable(true) // 是否开启swagger-ui.select()// basePackage 扫描哪些包// withClassAnnotation 基于类的注解扫描// withMethodAnnotation 基于方法的注解扫描// any 全扫描;none 全部扫描.apis(RequestHandlerSelectors.basePackage("tech.yfan.myboot.ctrl"))//.apis(RequestHandlerSelectors.withClassAnnotation(ScanSwagger.class))//.paths(PathSelectors.ant("/hello/**")).build();}@Beanpublic ApiInfo apiInfo(){return new ApiInfo("XXX-Admin接口文档","山河-项目组AA模块接口说明","1.0","http://www.baidu.com",new Contact("wangxy", "http://www.baidu.com", "135****465@qq.com"),"Apache 2.0","http://www.apache.org/licenses/LICENSE-2.0",new ArrayList());}
}

ApiInfo属性含义参见源码ApiInfo.class


我是到ApiInfo.class源码抄的静态代码块自己更改的内容,大致就是项目组描述、联系人、联系人邮箱什么的大家改一改网页访问对比以下就知道了

  • 成品图如下
  • 接口示例
@Controller
@RequestMapping("/hello")
@ScanSwagger
@ApiModel("Hello类注释")
public class HelloCtrl {/*** 此接口访问成功则框架跑的通* @return*/@ResponseBody@RequestMapping("/hello")@ApiOperation("你好方法")public String hello(@ApiParam("用户名") String username){return "hello";}
}
  • 再次成品

    这里我给方法(接口)和入参加了注释,便于别人理解(头晕)
    下面介绍以下介个注解的用处
  • 注解简述
    @Api注解可以用来标记当前Controller的功能。
    @ApiOperation注解用来标记一个方法的作用。
    @ApiImplicitParam注解用来描述一个参数,可以配置参数的中文含义,也可以给参数设置默认值,这样在接口测试的时候可以避免手动输入。
    如果有多个参数,则需要使用多个@ApiImplicitParam注解来描述,多个@ApiImplicitParam注解需要放在一个@ApiImplicitParams注解中。
    需要注意的是,@ApiImplicitParam注解中虽然可以指定参数是必填的,但是却不能代替@RequestParam(required = true),前者的必填只是在Swagger2框架内必填,抛弃了Swagger2,这个限制就没用了,所以假如开发者需要指定一个参数必填,@RequestParam(required = true)注解还是不能省略。
    不说了上面这几个注解是我抄一个名叫【江南一点雨】,实在不想码字了
  • 不成蛋的彩蛋
    Docket和ApiInfo都是源码点进去复制的静态代码块或构造方法,也不想码字
  • 反人类我
    用了这个丝袜哥我并没感觉到有多爽,相反我觉得有点蛋疼,可能我还不太习惯在代码里写接口注释的方式。
    这算不算把接口代码和接口文档耦合到一起呢,写完逻辑又在代码里补补注释实在不想这么干,我还是喜欢另起炉灶另找一块地方专门写接口文档。
    希望各位老哥解答我的疑惑,衷心的把我吊起来打

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整合UEditor教程

    很详细的SpringBoot整合UEditor教程 2017年04月10日 20:27:21 小宝2333 阅读数:21529 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...

  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 整合elk教程,实现日志收集(带视频哦)

    配套视频教程已经上传 整合ELK-实现日志收集(知乎) 整合ELK-实现日志收集(CSDN) 项目源码已上传至 https://gitee.com/yangleliu/learning.git,免费索 ...

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

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

最新文章

  1. python模拟按键_python 模拟按键放在模拟器Python初学者的17个技巧
  2. mysql 数据库引擎切花_asyncio异步编程【含视频教程】
  3. redis性能测试报告
  4. apache2启动和停止操作
  5. wxWidgets:wxStreamToTextRedirector类用法
  6. C++多线程实例(_beginThreadex创建多线程)
  7. windows下cmd中清屏
  8. 凡事多找找自己的原因_布袋除尘器灰斗积粉过多、堵灰该咋办?别急,从这8个方面找原因...
  9. 【CTF WEB】反序列化
  10. Openresty+Nginx+Lua+Nginx_http_upstream_check_module 搭建
  11. 谁在杀死Facebook?谁该为我们负责?
  12. 【note】《软件体系结构》知识整理(1-5章)
  13. OSChina 周日乱弹 ——可以囤硬盘了
  14. jquery中的css函数css(name)、css(key,value)、css(properties)、css(key,fn)
  15. CSS:设置文字不可选
  16. 注册icloud邮箱
  17. ssm+vue企业员工考勤请假网上办公OA自动化系统java
  18. 022-互惠合作|离职员工的关系网
  19. 好书推荐——从零开始学习 Julia 编程、数学和数据科学。
  20. 如何取消服务器自动关机,服务器自动关机求助

热门文章

  1. 淘宝卖家掌握最新操作方法,让你的直通车飞起来!
  2. (ch9) Deep Learning for Anomaly Detection: A Survey
  3. Matlab实现鼠标拖动显示轮廓线
  4. 三国杀online网页版服务器更新,2019年《三国杀Online》更迭汇总,一切为了“fun”...
  5. 博客介绍——warrent(博文末尾有彩蛋)
  6. 音乐探索3:关于放克
  7. DBMS_LOB.SUBSTR(col1,n,pos) : 获取文本
  8. DL之Transformer:Transformer的简介(优缺点/架构详解,基于Transformer的系列架构对比分析)、使用方法(NLP领域/CV领域)、案例应用之详细攻略
  9. C语言实现简单的四则运算计算器
  10. [博弈] LOJ#2471. 「九省联考 2018」一双木棋