关于java:尝鲜刚发布的-SpringFox-300以前造的轮子可以不用了

最近 SpringFox 3.0.0 公布了,间隔上一次大版本2.9.2足足有2年多工夫了。可能看到这个名字,很多读者会有点生疏。然而,只有给大家看一下这两个依赖,你就晓得了!

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>3.0.0</version>
    <scope>compile</scope>
</dependency>

当咱们在应用Spring MVC写接口的时候,为了生成API文档,为了不便整合Swagger,都是用这个SpringFox的这套封装。然而,自从2.9.2版本更新之后,就始终没有什么动静,也没有更上Spring Boot的大潮流,有一段时间还始终都是写个配置类来为我的项目增加文档配置的。为此,之前就造了这么个轮子:

  • https://github.com/SpringForAll/spring-boot-starter-swagger

也没什么难度,就是造的早,所以失去了不少Star。当初SpringFox出了一个starter,看了一下性能,尽管还不完满,但相较于之前咱们本人的轮子来说还是好蛮多的。来看看这个版本有些什么亮点:

  • Spring 5,Webflux 反对(仅申请映射反对,尚不反对性能端点)
  • Spring Integration 反对
  • Spring Boot 反对 springfox-boot-starter 依赖性(零配置,主动配置反对)
  • 具备主动实现性能的文档化配置属性
  • 更好的标准兼容性
  • 反对 OpenApi 3.0.3
  • 简直零依赖性(惟一须要的库是 spring-plugin、pswagger-core)
  • 现有的 swagger2 正文将持续无效,并丰盛 open API 3.0 标准

对于这次的更新,我感觉比较突出的几点:Webflux的反对,目前的轮子就没有做到;对OpenApi 3的反对;以及对Swagger 2的兼容(能够比拟不便的做降级了)。

上手尝鲜

说那么多,不如来一发程序试验下更间接!

第一步:创立一个Spring Boot我的项目,这里不开展,不会的看以前的教程:疾速入门

第二步pom.xml中增加依赖:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
<dependency>

当初简洁了不少,一个依赖搞定!

第三步:利用主类减少注解@EnableOpenApi

@EnableOpenApi
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

第四步:配置一些接口例子,比方:

@Api(tags="用户治理")
@RestController
public class UserController {

    @ApiOperation("创立用户")
    @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, "上海", "aaa@bbb.com");
    }

    @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, "北京", "aaa@ccc.com"));
        result.add(new User("bbb", 21, "广州", "aaa@ddd.com"));
        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

留神:

  1. 这次更新,移除了原来默认的swagger页面门路:http://host/context-path/swagger-ui.html,新增了两个可拜访门路:http://host/context-path/swagger-ui/index.htmlhttp://host/context-path/swagger-ui/
  2. 通过调整日志级别,还能够看到新版本的swagger文档接口也有新增,除了以前老版本的文档接口/v2/api-docs之外,还多了一个新版本的/v3/api-docs接口。

本系列教程《Spring Boot 2.x基础教程》点击中转!

代码示例

本文的相干例子能够查看上面仓库中的chapter2-7目录:

  • Github:https://github.com/dyc87112/SpringBoot-Learning/
  • Gitee:https://gitee.com/didispace/SpringBoot-Learning/

如果您感觉本文不错,欢送Star反对,您的关注是我保持的能源!

本文首发:尝鲜刚公布的 SpringFox 3.0.0,以前造的轮子能够不必了…,转载请注明出处。
欢送关注我的公众号:程序猿DD,取得独家整顿的学习资源和日常干货推送。点击中转本系列教程目录。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理