Swagger简介

1、Swagger 是一个规范和完整的框架,用于生成、描述、调用。

2、号称世界上最流行的Api框架。

3、RestFul Api文档在线自动生成工具(Api文档与Api定义同步更新

4、支持多种语言。

官网:API Documentation & Design Tools for Teams | Swagger

简单使用Swagger

在项目中使用Swagger,需要SpringBox(swagger2、swagger-ui)。

1、SpringBoot集成Swagger

1.1、新建一个SpringBoot的Web项目

1.2、导入相关Maven依赖

 注:需要注意SpringBoot与Swagger版本,不然会报错。若springboot项目的版本低,相应的swagger版本不能太高,反之亦然。(这里使用SpringBoot版本为:2.4.1、Swagger版本为2.9.2)

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency><!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
</dependency>

1.3、配置Swagger

package com.yang.swagger.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.GetMapping;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.ArrayList;//配置进SpringBoot中
@Configuration
//开启Swagger2
@EnableSwagger2
public class SwaggerConfig {//配置Swagger的Docket的Bean实例@Beanpublic Docket docket(){return new Docket(DocumentationType.SWAGGER_2)//.enable(true/false):// 是否启用Swagger.apiInfo(apiInfo()).select()//RequestHandlerSelectors:配置要扫描接口的方式//basePackage:指定需要扫描的包(推荐使用)//any:扫描全部//none:都不扫描//withClassAnnotation:扫描类上的注解,RequestHandlerSelectors.withClassAnnotation(RestController.class)//withMethodAnnotation:扫描方法上的注解,RequestHandlerSelectors.withMethodAnnotation(GetMapping.class).apis(RequestHandlerSelectors.basePackage("com.yang.swagger.controller"))//PathSelectors:过滤//ant("/Yang/**"): 只过滤出'Yang'下的所有接口//any():过滤全部.paths(PathSelectors.any()).build();}//配置Swagger信息的apiInfoprivate ApiInfo apiInfo(){//作者信息Contact contact = new Contact("Yang", "https://blog.csdn.net/qq_42696004?spm=1000.2115.3001.5343", "1102046099@qq.com");return new ApiInfo("杨的SwaggerAPI文档",    //标题"不行不想努力",    //个人简述"1.0",               //版本号"https://blog.csdn.net/qq_42696004?spm=1000.2115.3001.5343",  //组织地址contact,                     //作者信息"Apache 2.0","http://www.apache.org/licenses/LICENSE-2.0",new ArrayList());}}

1.4、测试运行(访问http://localhost:8080/swagger-ui.html即可)

(默认显示)

(配置后显示)

配置Api文档的分组

接口注释

@Api : 用在类上,说明该类的主要作用。

@ApiOperation:用在方法上,给API增加方法说明。

@ApiImplicitParams : 用在方法上,包含一组参数说明。

@ApiImplicitParam:用来注解来给方法入参增加说明。

@ApiModel:用在返回对象类上,描述一个Model的信息。

总结

我们可以通过Swagger给一些比较难理解的属性或接口,增加注释消息。接口文档实时更新。可以在线测试。

出于安全考虑,且能节省运行的内存,若项目正式发布,建议关闭Swagger!!!!

Swagger简单使用之从入门到精通相关推荐

  1. 《Linux指令从入门到精通》——4.2 Linux下的简单文字模式文本编辑器

    本节书摘来自异步社区<Linux指令从入门到精通>一书中的第4章,第4.2节,作者:宋磊 , 宋馥莉 , 雷文利著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  2. 基金投资好简单,从入门到精通 -学习笔记day1

    本系列笔记是我通过在喜马拉雅平台,跟随"威尼斯摆渡人"出品的"基金投资好简单,入门到精通"系列时学习记录的笔记,如果大家对基金投资感兴趣,并不知道怎么入手的话, ...

  3. 《AutoCAD 2016中文版从入门到精通》——第2章 简单二维绘制命令2.1 直线类命令...

    本节书摘来自异步社区<AutoCAD 2016中文版从入门到精通>一书中的第2章,第2.1节,作者: 贾雪艳 , 朱爱华 更多章节内容可以访问云栖社区"异步社区"公众号 ...

  4. cucumber java 实例_cucumber java从入门到精通(3)简单实现及断言

    cucumber java从入门到精通(3)简单实现及断言 上一节里我们定义了step的java代码实现文件,step就是测试步骤及断言的集合,我们先定义出来,以后可以驱动开发以及在持续集成时重用. ...

  5. SpringBoot从入门到精通教程(二十七)- @Valid注解用法详解+全局处理器Exception优雅处理参数验证用法

    问题痛点 用 Spring 框架写代码时,写接口类,相信大家对该类的写法非常熟悉.在写接口时要写效验请求参数逻辑,这时候我们会常用做法是写大量的 if 与 if else 类似这样的代码来做判断,如下 ...

  6. Spring Boot从入门到精通(超详细)

    Spring Boot从入门到精通(超详细) _kayden_ 2020-07-20 15:19:22 9491 正在上传-重新上传取消​ 收藏 184 分类专栏: springboot 文章标签:  ...

  7. 虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通

    UE5 Niagara学习教程  课程获取:虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通-云桥网 你会学到什么 我将通过创建各种各样的实时效果来教你虚幻引擎中强大的粒子系统. 我们将从简单的基 ...

  8. meteor从入门到精通_我已经大规模运行Meteor一年了。 这就是我所学到的。

    meteor从入门到精通 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 我已经大规模运行Meteor一年了. 这就是我所学到的. (I've been runni ...

  9. Java学习从入门到精通的学习建议

    想要学好java技术,首先打好基础很重要,不论学什么基础都是重中之重,学习Java更是如此.如:基础语法.核心类库.面向对象编程.异常.集合.IO流等基础如果学不好,那么后边更深入的语法也不容易学会. ...

最新文章

  1. HDU2925(约瑟夫环问题)
  2. linux下测试磁盘的读写IO速度-简易方法
  3. Spring Boot 2.x基础教程:多文件的上传
  4. Codeforces Round #501 (Div. 3)【未完结】
  5. JS 如何快速高效的将数组转换成树形结构
  6. redshift教程_分析和可视化Amazon Redshift数据—教程
  7. 聊一聊Jmeter的简单使用
  8. 【qduoj - 夏季学期创新题】骑士游历(递推dp)
  9. 学fpga(流水灯)
  10. 自动翻转html,css--图片翻转二:自动翻转
  11. android usb pos机,USB支持安卓系统NFC刷卡器|RFID刷卡机ACR122U
  12. 【VR】虚拟现实软件开发工具与技术
  13. 电容电感充电曲线仿真图
  14. 太阳的光和灯光有什么区别_太阳光和灯光有什么区别
  15. java几种对象的区别(PO,POJO,VO,BO,DAO)
  16. 【论文阅读笔记】Lightweight Image Super-Resolution with Enhanced CNN
  17. 精通C++,该如何学? 网友:船长一语中的啊。。。
  18. Mesa Overview
  19. title在python中是什么意思_python – 在matplotlib中,title()和suptitle()之间有什么区别?...
  20. 这瓶普普通通的六神花露水,凭什么能卖到500块?

热门文章

  1. 婚恋交友APP投快手信息流广告怎么收费的,婚恋交友APP快手短视频推广怎么做的,快手开户代运营返点多少
  2. Word2vec原理与应用
  3. 怎么在MAC系统下查看系统详细信息?新手快来看!
  4. 2020年中国车规级IGBT(新能源汽车用IGBT)市场规模现状及发展潜力分析[图]
  5. QQ邮箱验证码登录(移动端邮箱验证登录)
  6. 【GNN】循序渐进认识SSL
  7. springboot项目 o.s.b.d.LoggingFailureAnalysisReporter 错误解决方法
  8. alt tab无法切换窗口
  9. 华为P40系列搭载HMS后,华为钱包很不错
  10. 帮助中国IT企业吃掉更多不会跳舞的大象