这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战
前言
本节介绍RuoYi-Vue的ruoyi-admin模块中如何使用Swagger,Ruoyi使用的是Swagger3.0,对于我们现在这些前后端分离的程序来说很重要的一部分内容就是文档,Swagger 为我们提供了一套通过代码和注解自动生成文档的方法,这一点对于保证 API 文档的及时性将有很大的帮助。
引入依赖
现在SpringBoot已经支持springfox-boot-starter了,我们可以零配置引入swagger3了。
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
当然需要更高的Java版本(至少是8)和SpringBoot版本(2.2之后)
这次只要添加了依赖,就可以直接使用了,非常方便,注意这次访问地址变为
http://localhost:8080/swagger-ui/index.html,
但是现在的页面各种基础信息还没有进行配置,没有办法展示项目的信息。
之前swagger2用的是http://localhost:8080/swagger-ui.html
配置基础信息
我们可以通过application.yml可以进行Swagger的配置,在dev里面开启swagger,在生产环境关闭swagger
swagger:
enabled: false
注意false之前的空格不能丢,下面就是关闭之后的样子了。
添加配置信息的具体代码如下,可以看到这次的@EnableOpenApi这个注解都可以省略掉,所以说真的是省去了很多的注意事项。
@Configuration
//@EnableOpenApi
public class SwaggerConfig {
/**
* 是否开启swagger
*/
@Value("${swagger.enabled}")
private boolean enabled;
@Bean
public Docket docket() {
return new Docket(DocumentationType.OAS_30)
// 是否启用Swagger
.enable(enabled)
// 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
.apiInfo(apiInfo())
// 设置哪些接口暴露给Swagger展示
.select()
// 扫描所有 .apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("XX项目接口文档")
.description("XX项目描述")
.contact(new Contact("作者", "作者URL", "作者Email"))
.version("1.0")
.build();
}
}