swagger
1.1swagger介绍
Swagger用于生成、描述、调用和可视化RESTful风格的web服务。
1.2swagger的作用
-
使得前后端分离开发更加方便,有利于团队协作
-
接口的文档在线自动生成,降低后端开发人员编写接口文档的负担
-
功能测试
1.3使用步骤
导入knife4j的maven坐标
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
在配置类中加入knife4j的相关配置
/**
* 通过knife4j生成接口文档
* @return
*/
@Bean
public Docket docket() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("接口文档的标题")
.version("接口文档的版本号")
.description("接口文档的简单描述")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
设置静态资源映射,否则接口文档页面无法访问
/**
* 设置静态资源映射
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
接口测试:从静态资源映射中得知,访问路径为默认地址加/doc.html
2.swagger常用注解
注解名 | 说明 |
@Api | 类上,如Controller,对类的说明 |
@ApiModel | 类上,如pojo、DTO、VO |
@ApiModelProperty | 属性上,描述属性信息 |
@ApiOperation | 方法上,描述方法的作用 |