目录
一、简介
Swagger是一个用于构建、文档化和调试API的开工具集。它可以帮助开发员快速创建和设计RESTful API,并生成于阅读的文档。Swagger提供了一个交互式的API浏览器,可以在其中测试和调试API,还可以生成可执行的客户端代码以便与API进行交互。通过Swagger,开发人员可以更好地管理和共享API,提高开发速度和效率。
二、使用步骤
1、导入knife4j的maven坐标
在pom.xml中导入依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
2、在配置类中加入knife4j相关配置
在对应的配置类中加入下面的代码
@Bean
public Docket docket() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("小说小程序接口文档")
.version("2.0")
.description("小说小程序接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.novelvx.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
其中,该apiInfo对象里面的属性即接口文档的信息,例如文档的标题、版本、描述等等
ApiInfo apiInfo = new ApiInfoBuilder()
.title("小说小程序接口文档")
.version("2.0")
.description("小说小程序接口文档")
.build();
其中,docket对象里面的apis方法即指定生成接口需要扫描的包
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.novelvx.controller"))
.paths(PathSelectors.any())
.build();
例如,我的配置类是WebMvcConfiguration,controller路径为com.novelvx.config
3、设置静态资源映射(否则接口文档页面无法访问)
在对应的配置类中加入方法
/**
* 设置静态资源映射
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始设置静态资源映射。。。");
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
其中/doc.html为资源路径,当对这个路径进行请求时,会映射到该路径下classpath:/META-INF/resources/
当成功启动项目时,会出现开始设置静态资源映射。。。提示信息(信息内容可以自定义,在log.info里面)。然后看到我们所使用的端口为8080。
那我们访问接口文档的地址即http://localhost:8080/doc.html
三、接口文档的简单讲解
1、生成对应的接口
接口方法对应接口用例
2、接口说明
在说明中含有对应的请求说明、响应说明
3、接口测试
在对应的接口用例中,选择调试,可以进行对应的接口测试。是会真实请求到后端的
四、Swagger的常用注解
注解 | 说明 |
---|---|
@Api | 用在类上,例如Controller,表示对类的说明 |
@ApiModel | 用在类上,例如entity、DTO、VO |
@ApiModelProperty | 用在属性上,描述属性信息 |
@ApiOperation | 用在方法上,例如Controller的方法,说明方法的用途、作用 |
1、@Api
一般用于对类的说明
例如
2、@ApiModel
一般用于描述实体的
例如
3、@ApiModelProperty
一般描述实体类中属性的信息
例如
4、@ApiOperation
用于说明方法的用途、作用
例如
加了注解进行描述时,接口文档的可读性增强了