0

我想用 Swagger 和 Spring MVC 记录一个 REST API,

我发现 Spring 3 只能使用 Swagger V1

        <artifactId>swagger-springmvc</artifactId>
        <version>1.0.2</version>

当我在 @RequestBody 前面添加 @ApiParam 时,不要在数据类型中完全显示。

最后我在 Spring 4 中选择了 Swagger V2

我添加了一些依赖和更改,如下所示。

        <artifactId>springfox-swagger2</artifactId>
        <version>2.2.2</version>
        <artifactId>spring-web</artifactId>
        <artifactId>4.1.6.RELEASE</artifactId>

现在可以在需要时显示任何 API 信息,

  1. 但仍然不知道为什么 Spring 3 只能使用 SwaggerV1

  2. 以及使用 Swagger V2 时 Spring 3 和 Spring 4 的区别

  3. 为什么 Spring 3 不需要 spring-web,但 Spring 4 需要

如果需要任何信息,请告诉我

如果您能提供任何帮助,我将不胜感激。

4

1 回答 1

3

免责声明:SpringFox 不是产品,是 OSS 项目。我是该项目的维护者之一,也是目前唯一活跃的维护者。

说了这么多,让我来回答你的一些问题。

但仍然不知道为什么 Spring 3 只能使用 SwaggerV1

作为一项政策,当前积极维护的版本是最新版 spring 之后的一个小版本。Swagger v1 已经很老了,所以当 swagger 2 发布时,我们积极地迁移到了更新版本的 spring,最后一个支持 spring 3 的版本是1.0.2. 这遵循 Spring 项目所遵循的相同准则spring-hateoas

以及使用 Swagger V2 时 Spring 3 和 Spring 4 的区别

springfox不同之处在于 spring 3 并不是v2.x真正受支持的版本。spring 的官方测试版本是4.1.7.RELEASE针对v2.2.2.

为什么 Spring 3 不需要 spring-web,但 Spring 4 需要

这是因为我们spring是provided dependencyspringfox的一个。所以图书馆的消费者可以提供任何版本> 4.1,图书馆就可以工作。在 spring 3 中情况并非如此,因为我们发布了带有 spring 依赖项的 springfox 库。

于 2015-11-06T01:46:09.417 回答