SwaggerAPI管理工具

Swagger有几个重要特性

代码侵入式注解

遵循YAML文档格式

非常适合三端(PC、iOS及Android)的API管理,尤其适合前后端完全分离的架构模式。

减少没有必要的文档,符合敏捷开发理念

功能强大

作用

接口的文档在线自动生成

功能测试

优点

1. 大大减少前后端的沟通

2. 方便查找和测试接口

3. 提高团队的开发效率

4. 方便新人了解项目

配置swagger

引入依赖

<!-- swagger -->
<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>

配置类

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                //apiInfo指定测试文档基本信息,这部分将在页面展示
                .apiInfo(apiInfo())
                .select()
                //apis() 控制哪些接口暴露给swagger,
                // RequestHandlerSelectors.any() 所有都暴露
                // RequestHandlerSelectors.basePackage("com.info.*")  指定包位置
                .apis(RequestHandlerSelectors.basePackage("com.cbw.admin"))
                .paths(PathSelectors.any())
                .build();
    }

    //基本信息,页面展示
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("接口文档")
                .description("接口描述")
                //联系人实体类
                .contact(
                        new Contact(null, null, null)
                )
                //版本号
                .version("1.0.0")
                .build();
    }
}

常用注解

swagger通过在controller中,声明注解,API文档进行说明

1、@Api():用在请求的类上,表示对类的说明,也代表了这个类是swagger2的资源

SwaggerAPI管理工具

2、@ApiOperation():用于方法,表示一个http请求访问该方法的操作

SwaggerAPI管理工具 

3、@ApiModel():用于响应实体类上,用于说明实体作用

SwaggerAPI管理工具

4、@ApiModelProperty:用在属性上,描述实体类的属性

SwaggerAPI管理工具 

5、@ApiImplicitParams:用在请求的方法上,包含多@ApiImplicitParam

6、@ApiImplicitParam:用于方法,表示单独的请求参数

SwaggerAPI管理工具

7、@ApiParam():用于方法,参数,字段说明 表示对参数的要求和说明

SwaggerAPI管理工具

 8、@ApiResponses:用于请求的方法上,根据响应码表示不同响应

一个@ApiResponses包含多个@ApiResponse

9、@ApiResponse:用在请求的方法上,表示不同的响应

SwaggerAPI管理工具

 10、@ApiIgnore():用于类或者方法上,不被显示在页面上

使用

上一篇:swagger2的使用java集成


下一篇:Spring Boot:整合knife4j