一、Swagger介绍:
- 是一款让你更好的书写API文档规范且完整的框架。
- 提供描述、生产、消费和可视化RESTful Web Service。
- 是由庞大工具集合支撑的形式化规范。这个集合涵盖了从终端用户接口、底层代码库到商业API管理的方方面面。
二、配置过程
1、在boot启动类加入注解@EnableSwagger2
@EnableSwagger2
2、在pom.xml文件中引入依赖
<!--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>
<!--guava依赖包 高性能缓存组件-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>25.1-jre</version>
</dependency>
3、配置Swagger类
import org.springframework.context.annotation.Bean;
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;
/**
* Swgger 配置类
*/
public class SwggerConfig {
/**
* 创建API应用对象
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现
* @return
*/
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//设置选择器,选择带Api接口类的类
.select()
//设置路径筛选 ,any表示不筛选
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
/**
* 创建该API的基本信息(这些基本信息会展现在文档页面中)
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("xxx系统")
.description("这里是商城所有api文档") //信息描述
.termsOfServiceUrl("https://www.baidu.com") //服务条款网址
.build();
}
}
4、拦截器中配置
//防止把默认的静态资源路径覆盖了,手动设置的方式
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
// webjars/** 表示已jar包方式引入静态资源
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
三、其他注解介绍
- @Api 注解在controller类上
- @ApiModel 注解在类上,一般是实体类
- @ApiOperation 注解在方法上,表明方法级解释
- @ApiImplicitParams 注解在方法上,一般与@ApiImplicitParam共用,多个参数逗号隔开,表请求参数
- @ApiResponses 注解在方法上表响应,一般与@ApiResponse公用
四、使用方法以及效果演示
1、swagger页面
配置完成之后在浏览器的地址栏输入http://localhost:8080/swagger-ui.html进行访问,可见如下页面:
2、登录功能演示
点击login登录功能
可见如下信息,证明登录成功