swagger2是一个可以构建和调试RESTful API文档的组件,利用swagger2的注解可以快速的在项目中构建Api文档,并且提供了测试API的功能

1,引入依赖

<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version>
</dependency>

2,配置swagger2

@Configuration
@EnableSwagger2
public class Swagger2Configration {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("org.my.security")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("Spring Boot添加Swagger2组件").description("Spring Boot添加Swagger2组件").version("1.0").build();}
}

@configration 标识这是一个配置类

@EnableSwagger2开启swagger2

apis表示swagger需要扫描的包
PathSelectors.any()表示路径选择器匹配所有路径

apiInfo() swagger页面上的一些展示信息

3,swagger常用注释

@Api() 用于类;表示标识这个类是swagger的资源 tags–表示说明 value–也是说明,可以使用tags替代 @ApiOperation() 用于方法;表示一个http请求的操作 value用于方法描述 notes用于提示内容 

@ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等) name–参数名 value–参数说明 required–是否必填

@ApiModel()用于类 ;表示对类进行说明,用于参数用实体类接收 value–表示对象名 

@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改 value–字段说明 name–重写属性名字 dataType–重写属性类型 required–是否必填 example–举例说明 hidden–隐藏

@ApiImplicitParam() 用于方法 表示单独的请求参数

@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam name–参数ming value–参数说明 dataType–数据类型 paramType–参数类型 example–举例说明
@ApiIgnore
作用于方法上,使用这个注解swagger将忽略这个接口

4,打个样

@RestController
@RequestMapping("user")
@Api("用户信息接口")
public class UserController {@GetMapping("/{id}")@ApiOperation(value="查询用户", notes="根据id来查询用户")@ApiImplicitParam(name = "id", value = "用户ID")@JsonView(User.UserSimplaView.class)public User getUser(@PathVariable String id){User user = new User();user.setUserName("陈明羽");user.setPassWord("root明羽");return user;}@GetMapping("/userDetail/{id}")@ApiOperation(value="查询用户详情", notes="根据id来查询用户详情信息")@ApiImplicitParam(name = "id", value = "用户ID")@JsonView(User.UserDetailView.class)public User getUserDetail(@PathVariable String id){User user = new User();user.setUserName("陈明羽");user.setPassWord("root明羽");return user;}}

//model对象@ApiModel(value="用户对象")public class User {

  @ApiModelProperty(value="用户名",name="userName")
  private String userName;
  @ApiModelProperty(value="密码",name="passWord")
  private String passWord;

  //get(),set()

}

5,swagger文档效果

访问 http://localhost:8080/swagger-ui.html

点击单个接口

          

6,测试接口

  以上图/user/userDetail接口为例

  在Parameters那块对应字段的value给填上你想测试的值,然后点 try in out!

转载于:https://www.cnblogs.com/cmyxn/p/8028134.html

springboot添加swagger2组件相关推荐

  1. 13.9 SpringBoot集成Swagger2中遇到的问题

    13.9 SpringBoot集成Swagger2中遇到的问题 我们在使用SpringBoot集成Swagger2中,访问:http://127.0.0.1:8188/swagger-ui.html ...

  2. springboot集成swagger2构建RESTful API文档

    在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可 ...

  3. JAVA入门[23]-SpringBoot配置Swagger2

    一.新建SpringBoot站点 1.新建module,然后引入pom依赖: <parent><groupId>org.springframework.boot</gro ...

  4. SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener

    SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener 1.定义组件的配置类: com.example.mybatis2018.config.MyServletCo ...

  5. SpringBoot集成Swagger2自动生成友好的RestApi测试页面及文档

    springBoot集成swagger2 水煮鱼又失败了 https://www.jianshu.com/p/002ce2f26103 1 背景 springBoot作为微服务首选框架,为其他服务提供 ...

  6. springboot整合 swagger2

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

  7. 【快速上手系列】使用Springboot集成Swagger2的简单使用测试

    [快速上手系列]使用Springboot集成Swagger2的简单使用测试 简介 Swagger2是为了解决企业中接口(api)中定义统一标准规范的文档生成工具. 尤其是前后端分离时对一些业务接口也不 ...

  8. SpringBoot集成Swagger2

    SpringBoot集成Swagger2 刚开始用2.0.2.RELEASE版本的SpringBoot去继承2.7.0版本的springfox-swagger2一直出现请求下面这种情况,就是在启动Sp ...

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

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

最新文章

  1. 剑指offer:面试题10- I. 斐波那契数列
  2. 【翻译】24款界面精美的免费UI工具包
  3. python:数组/列表(remove()函数、append()函数、sort()函数、reverse()函数)
  4. 【错误记录】Android 低版本使用分区存储错误 ( 低版本存储不得使用 MediaStore )
  5. 成功将用intelli idea 建立的项目打包成jar文件,并在Linux上成功运行
  6. 谈Tensorflow的Batch Normalization
  7. IAR STM32报错Error[Pe147]:declaration is incompatible with“__nounwind __interwork __softfp unsigned
  8. vue打包上线部分css效果错乱,vue-cli2打包后css部分样式错乱
  9. android strictmode有什么作用,Android 性能优化 之 StrictMode
  10. Android多媒体之视频播放器高级开发
  11. 拷贝构造函数和赋值构造函数声明为私有的作用
  12. 洛谷——P1296 奶牛的耳语
  13. OFFICE技术讲座:JDK绘制旋转斜体字体的效果
  14. 《Frustum PointNets for 3D Object Detection from RGB-D Data》论文及代码学习(二)——代码部分
  15. No module named ‘lightgbm‘
  16. 计算机建筑制图实践报告,工程建筑实习报告范文(精选5篇)
  17. MongoDb(六)索引原理和命令
  18. “踢爆”职场焦虑、玩机车、文科转大厂程序媛,乘风破浪的 IT 女神太飒了!
  19. 概述HTTPS,简单了解对称性加密算法、非对称性加密算法方式
  20. IMXRT 的Boot模式

热门文章

  1. python3多进程 pool manager_Python多进程multiprocessing.Pool
  2. mysql 同一张表查询_mysql 同一张表查询 left join
  3. mapreduce 文件可以切分吗_MapReduce的任务流程
  4. python 接口自动化测试_python接口自动化测试之接口数据依赖
  5. java 乐观锁 实例_JAVA乐观锁实现-CAS(示例代码)
  6. python写接口自动化需要rsa加密_RSA加密,请问如何用Python实现该加密过程
  7. 【AWS】DynamoDB扫描操作获取表全部数据
  8. 【研发管理】中国企业 VS 世界优秀企业在产品研发上差距(下)
  9. 转载-项目经理与部门经理之间的关系
  10. Winform中使用FastReport实现自定义PDF打印预览