SwaggerUI v4 和 SwaggerEditor v4 的新功能

  2021 年 11 月 03 日

Swagger v4 的工作终于取得了丰硕的成果。这是一段不可思议的旅程,我们特别感谢社区成员,他们帮助了 v4 的进展。他们的贡献使我们能够在整个发布候选过程中快速识别和解决各种错误和异常。

SwaggerUISwaggerEditor 的主要分支都在运行最新版本的 React 17.x 和 Redux 4.x。除了对这两个主要依赖项进行更改之外,我们还更新和修剪了许多其他依赖项。这导致了更安全、更稳定和更精简的依赖树。

v4 版本的最重大好处是 SwaggerUI 和 SwaggerEditor 的插件现在可以使用函数(又名功能)组件以及 React 17 带来的所有最新功能。这包括 Hooks、Context API、新的生命周期方法、新的事件处理程序、错误边界等等。

有哪些重大更改?

对于任何不将 SwaggerUI 或 SwaggerEditor 集成作为 React 库的人,没有重大更改。v4 版本将像以前一样继续支持 OpenAPI 3.0.x 和 Swagger 2.0。对于库维护人员,唯一引入的重大更改是放弃了对旧版本 React 和 Redux 的支持。

为了确保平稳升级,在使用 v4 时,请更新所有 React 代码以支持 React@17。如果这证明不可能,另一种方法是运行两个版本的 React,这是一种称为渐进升级的做法。可以在 https://github.com/reactjs/react-gradual-upgrade-demo/ 上找到指南。

SwaggerUI API、插件系统或代码库的任何其他部分都没有其他重大更改。

为什么要使用新的主要 (v4) 版本?

过去,SwaggerUI 和 SwaggerEditor 的版本控制遵循 OpenAPI 规范的版本。当 OpenAPI 3.0.0 发布时,SwaggerUI 和 SwaggerEditor 也分别发布了各自的 v3 版本。这种版本控制结构虽然最初简单易懂且易于推广,但在将 Swagger 集成作为库时确实存在问题,这是我们作为其他库的消费者感同身受的。因此,我们决定放弃这种方法,并在可能的情况下采用语义版本控制。v4 版本是为 Swagger 工具添加新的激动人心的功能的开始,所有这些功能都从更新到最新的可用精简依赖树开始。

今天如何探索 Swagger v4

SwaggerUI 和 SwaggerEditor 的 v4 npm 包可在 npmjs.com 上获得,并将是最新稳定版本。您可以通过命令行安装这些包,npm install [-D|-S] swagger-ui@4

3.x 分支的生命周期

我们将继续支持 3.x 分支到 2021 年 11 月底。在 3.x 维护期间,我们将向 3.x 分支反向移植安全性和/或错误修复,并发布 v3 补丁版本。不会向 v3 分支添加任何新功能。