Spring 3 和 Spring 4 的 Swagger 版本

Swagger Version for Spring 3 and Spring 4

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

而且我发现 Spring 3 只能使用 Swagger V1

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

当我在@RequestBody 前面加上@ApiParam 时,Data Type 显示不完整

最后我在Spring4

中选择了Swagger V2

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

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

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

  1. But still no idea why Spring 3 only can use SwaggerV1

  2. and the difference between the Spring 3 & 4 when use Swagger V2

  3. why Spring 3 not need spring-web ,but Spring 4 need

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

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

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

话虽如此,让我回答你的一些问题。

But still no idea why Spring 3 only can use SwaggerV1

作为一项政策,当前积极维护的版本比 spring 的最新版本落后一个次要版本。 Swagger v1 已经很老了,所以当 swagger 2 发布时,我们积极地转向更新版本的 spring,最后一个支持 spring 3 的版本是 1.0.2。这遵循 spring 项目如 spring-hateoas 遵循的相同准则。

and the difference between the Spring 3 & 4 when use Swagger V2

区别在于 spring 3 并不是 springfox v2.x 真正受支持的版本。 spring 的正式测试版本是 4.1.7.RELEASE for v2.2.2.

why Spring 3 not need spring-web ,but Spring 4 need

这是因为我们spring是spring狐狸的provided dependency。因此,图书馆的消费者可以提供任何版本 > 4.1,图书馆就可以正常工作。 spring 3 中不是这种情况,因为我们发布了带有 spring 依赖项的 springfox 库。