简介:
在集成之前先简单介绍一下swagger是什么,Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件,主要作用就是实现接口与文档的同步更新,减少了编写文档的工作量
swagger官方网站:
springboot集成swagger:
1.导入依赖:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
2.配置swagger配置类:
package com.rails.travel.conf;
import io.swagger.annotations.ApiOperation;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* swagger配置类
*
*/
@Configuration
@EnableSwagger2//开启swagger
public class SwaggerConfig{
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //这里采用包含注解的方式来确定要显示的接口
//.apis(RequestHandlerSelectors.basePackage("com.stylefeng.guns.modular.system.controller")) //这里采用包扫描的方式来确定要显示的接口
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("travel-admin-ws Doc")//标题
.description("travel-admin-ws Api文档")//描述
.termsOfServiceUrl("")//创建人
.version("1.0")//版本
.build();
}
}
到此所有配置都完成,接着就是在接口中应用
3.接口中应用:
具体应用如图:
类上配置@Api(tags = {"登录日志管理"}) ,方法上配置@ApiOperation(value = "条件查询") 即可
而@ApiImplicitParam
(name =
"id"
, value =
"学生ID"
, paramType =
"path"
, required =
true
, dataType =
"Integer"
)
可以配置具体属性
4.结果如下:
swagger的注解介绍:
- @Api:修饰整个类,描述Controller的作用
- @ApiOperation:描述一个类的一个方法,或者说一个接口
- @ApiParam:单个参数描述
- @ApiModel:用对象来接收参数
- @ApiProperty:用对象接收参数时,描述对象的一个字段
- @ApiResponse:HTTP响应其中1个描述
- @ApiResponses:HTTP响应整体描述
- @ApiIgnore:使用该注解忽略这个API
- @ApiError :发生错误返回的信息
- @ApiImplicitParam:一个请求参数
- @ApiImplicitParams:多个请求参数