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 { @Bean
public 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!

最新文章

  1. CNN初步-2
  2. outscan 一键批量 get struct2 devMode (CNVD-2016-04656)
  3. 基于TCP和多线程实现无线鼠标键盘-Socket(1)
  4. 基于Jquery的banner轮播插件,简单粗暴
  5. oracle解析xml(增加对9i版本的支持)
  6. ionic框架,快速开发webAPP神器。
  7. mantis 中文统计报表乱码问题解决办法
  8. python之列表生成式
  9. android 项目中设置背景图片
  10. 解析PHP中常见的mongodb查询操作
  11. CSS 文本溢出时显示省略标记
  12. vuex的学习笔记
  13. MySQL 中添加列、修改列以及删除列
  14. 在Windows下搭建Gitlab服务器
  15. Powmod快速幂取模
  16. 如何编写最佳的Dockerfile
  17. Ubuntu 16.04 下octave的使用入门
  18. 牛客 被3整除的子序列dp
  19. 看看大神们是怎么解决一些【bng】的哪!!!!
  20. noip2014无线网络发射器选址

热门文章

  1. px em rem的详解与区别
  2. Java web学习 Cookie&amp;&amp;Session
  3. PyCharm 如何安装python第三方库及插件
  4. BabeLua常见问题
  5. C++中引用的底层实现
  6. js中的路由匹配
  7. R-CNN论文翻译——用于精确物体定位和语义分割的丰富特征层次结构
  8. 【Arduino】使用LCD1602和DHT11制作温湿度显示器
  9. Dapper-继续
  10. 菜鸟谈谈C#中的构造函数和析构函数