1 导包
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.6</version>
</dependency>
2 创建一个控制器
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "Hello Springdoc";
}
}
3 测试
在浏览器中输入http://localhost:8080/hello
在浏览器中输入http://localhost:8080/swagger-ui
成功获取到swagger文档
4 创建info信息
创建一个配置类,在该类中配置
@Configuration
public class SpringdocConfig {
@Bean
public OpenAPI createApi(){
return new OpenAPI().info(getInfo());
}
// 创建元数据
private Info getInfo(){
return new Info()
// 标题
.title("openApi test")
// 简短描述
.description("a test openApi")
// 指向服务条款的URL地址,必须是URL地址格式
.termsOfService("http://localhost:8080")
// 公开的API的联系人信息
.contact(createCon())
// API文档的版本信息
.version("0.1");
}
// 创建公开的API的联系人信息
private Contact createCon(){
return new Contact()
.email("aion@qq.com")
.name("aion")
.url("http://aion.com");
}
}
在浏览器中输入http://localhost:8080/swagger-ui
5 配置要扫描的包及路径
默认情况下回扫描所有包下的控制器,获取所有路径的信息并生成文档。但是有时候我们并不想在文档中生成某些路径信息,此时就需要配置要扫描的包和匹配的路径。
在application.yml
文件中添加配置
springdoc:
# 可以用','分割多个需要扫描的包
packages-to-scan: com.aion.springdocdeom.controller
# 可以用','分割多个需要匹配的路径
# 还可用/hello/**匹配/hello路径及其子路径
paths-to-match: /hello
这样就只会在文档中生成com.aion.springdocdeom.controller
包下/hello
路径的信息