SpringFox 3.0.0 的版本,有很多亮點,比如:
- Spring 5,Webflux 支持(僅請求映射支持,尚不支持功能端點)
- Spring Integration 支持
- Spring Boot 支持 springfox-boot-starter 依賴性(零配置,自動配置支持)
- 具有自動完成功能的文檔化配置屬性
- 更好的規(guī)范兼容性
- 支持 OpenApi 3.0.3
- 幾乎零依賴性(唯一需要的庫是 spring-plugin、pswagger-core)
- 現(xiàn)有的 swagger2 注釋將繼續(xù)有效,并豐富 open API 3.0 規(guī)范
以上亮點比較突出的有:Webflux的支持、對OpenApi 3的支持,以及對Swagger 2的兼容。
為了更清楚的展示SpringFox 3.0.0 的優(yōu)勢,我們通過一個程序?qū)嶒瀬砀庇^的來了解一下!
第一步:創(chuàng)建一個Spring Boot項目
第二步:pom.xml
中添加依賴:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
<dependency>
現(xiàn)在簡潔了不少,一個依賴搞定!
第三步:應用主類增加注解@EnableOpenApi
。
@EnableOpenApi
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
第四步:配置一些接口例子,比如:
@Api(tags="用戶管理")
@RestController
public class UserController {
@ApiOperation("創(chuàng)建用戶")
@PostMapping("/users")
public User create(@RequestBody @Valid User user) {
return user;
}
@ApiOperation("用戶詳情")
@GetMapping("/users/{id}")
public User findById(@PathVariable Long id) {
return new User("bbb", 21, "上海", "[email protected]");
}
@ApiOperation("用戶列表")
@GetMapping("/users")
public List<User> list(@ApiParam("查看第幾頁") @RequestParam int pageIndex,
@ApiParam("每頁多少條") @RequestParam int pageSize) {
List<User> result = new ArrayList<>();
result.add(new User("aaa", 50, "北京", "[email protected]"));
result.add(new User("bbb", 21, "廣州", "[email protected]"));
return result;
}
@ApiIgnore
@DeleteMapping("/users/{id}")
public String deleteById(@PathVariable Long id) {
return "delete user : " + id;
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("用戶基本信息")
public class User {
@ApiModelProperty("姓名")
@Size(max = 20)
private String name;
@ApiModelProperty("年齡")
@Max(150)
@Min(1)
private Integer age;
@NotNull
private String address;
@Pattern(regexp = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$")
private String email;
}
第五步:啟動應用!訪問swagger頁面:http://localhost:8080/swagger-ui/index.html
注意:
- SpringFox 3.0.0的更新,移除了原來默認的swagger頁面路徑:
http://host/context-path/swagger-ui.html
,新增了兩個可訪問路徑:http://host/context-path/swagger-ui/index.html
和http://host/context-path/swagger-ui/
- 通過調(diào)整日志級別,還可以看到新版本的swagger文檔接口也有新增,除了以前老版本的文檔接口
/v2/api-docs
之外,還多了一個新版本的/v3/api-docs
接口。
注:本文轉(zhuǎn)載自“程序猿DD”,如有侵權,請聯(lián)系刪除!