springboot添加swagger2组件

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!

posted @ 2017-12-12 15:42  叫我明羽  阅读(3957)  评论(0编辑  收藏  举报