一、配置步骤
1.在pom.xml中添加依赖
方式一:只需要添加knife4j-starter 即可
<!-- knife4j(swagger)依赖 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
方式二:添加swagger2依赖
<!--swagger2 start依赖 -->
<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>
2.创建Swagger2 的配置类
代码如下:
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;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.demo.swagger.controller"))
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swagger2 接口文档")
.description("swagger接口文档")
.contact("冰雪伯爵")
.version("1.0.0")
.build();
}
}
3. controller 测试
在controller中增加注解@API,方法上增加注解@ApiOperation,参数前加@ApiParam 代码如下:
@RestController
@RequestMapping(value = "/swagger")
@Api(tags = "测试swagger")
public class TestController {
@PostMapping("/test")
@ApiOperation(value = "swagger测试")
public String test(@RequestParam("id") Integer id){
return "swagger:"+id;
}
}
4.Swagger2 常用注解说明
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:描述一个对象实体信息,即常用的实体、VO类、DTO类等描述
@ApiModelProperty():用于描述对象实体的属性信息
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解 自动生成接口忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam:对单个参数的说明
@ApiImplicitParams:多个请求参数的说明
@ApiOperationSupport():(knife4j增加特性)用于接口方法排序,作者信息描述等。
5.接口测试
启动项目,在浏览器地址栏输入:http://localhost:端口号/doc.html 或 localhost:端口号/swagger-ui.html 即可查看swagger文档
|