Java, 原创, 服务器OpenApi, Spring Boot, SpringDoc, Swagger3
Spring Boot Maven Project 整合 Swagger2-3.0(OpenApi 3)方法
- by chenxue4076
- 4 years ago
因目前网上流行的大部分是swagger2-2版本整合,swagger2-3.0(或称swagger3)版本较少,而且说法各异,目前根据实际项目将整合流程记录如下
分三部操作,1.引入依赖,2.开启swagger-ui, 3.整合相关Controller类
1.引入依赖
在根目录的 pom.xml中(如果分模块应该放在controller和start模块下的pom.xml中)加入下面依赖,记住 swagger2从3.0版本开始就是用 openapi了 参考地址 OpenApi 3 & Spring Boot,使用的版本 springdoc-openapi v1.4.8,放在 dependencies标签内
<!-- openapi 3 -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.4.8</version>
</dependency>
2.开启swagger-ui功能
修改 application.properties 文件,新增代码
springdoc.swagger-ui.enabled=true
springdoc.api-docs.enabled=true
3.在 Controller中添加注解
相关注解使用参考文章 OpenApi 3 & Spring Boot , Migrating from SpringFox
package cn.focusmedia.demo2.demo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@Tag(name = "Demo测试接口")
@RestController
public class DemoController {
@Operation(summary = "hello xx ")
@GetMapping("/hello")
public String hello(@RequestParam(value="name", defaultValue="World") String name) {
return String.format("hello %s!", name);
}
@Operation(summary = "abc")
@GetMapping("/abc")
public String abc() {
System.out.println("abc");
return "abc";
}
}
4.验证
启动服务后 打开 http://localhost:8080/swagger-ui.html 浏览器会自动跳转至 http://localhost:8080/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config
不是直接使用 http://localhost:8080/swagger-ui/index.html ,因为这里加载的是官方demo的配置,不是我们需要的。
问题
(739)