Swagger 支持 OpenAPI 3.1

  2023 年 6 月 19 日

Swagger 推出对 OpenAPI 3.1 的支持

我们很高兴地宣布,Swagger 开源生态系统全面支持 OpenAPI 3.1。

总结;

🎉Swagger 现已支持 OpenAPI 3.1 的编辑和渲染。
Swagger 提供对 JSON Schema 2020-12 的渲染支持。
Swagger UI、Swagger Client、Swagger Editor (Next)、Swagger Parser、Swagger Core 和 ApiDOM 均已添加对 OpenAPI 3.1 的支持。
请在 swagger-api 上查看 Swagger 开源项目的详细信息。

之前的更新 和新的 产品发布,增加了丰富的编辑和验证体验之后,Swagger UI 现已支持渲染 OpenAPI 3.1 文档,并广泛支持最新版本的 JSON Schema 规范(Draft 2020-12)。

这一里程碑与新的 Swagger EditorAsyncAPI(2.* 版本)的开箱即用支持同步,这意味着 Swagger 为使用所有版本 OpenAPI 和 AsyncAPI 的开发团队带来了丰富的体验。

什么是 OpenAPI 3.1?

OpenAPI 3.1 是 OpenAPI 规范 (OAS) 的最新版本(截至本文撰写时)。OpenAPI 规范定义了 HTTP API 的标准、与语言无关的接口描述。它允许人类和计算机理解服务的功能,而无需访问源代码、额外文档或检查网络流量。 

随着 OpenAPI 3.1 的发布,OAS 技术指导委员会 (TSC) 经过社区讨论,决定不再遵循语义化版本控制。这使得某些破坏性变更能够适应与 JSON Schema 2020-12 的对齐,并解决 OpenAPI 3.0 中的经验教训,从而实现次要版本升级。这些变更已在 发布说明 中详细说明。 

OpenAPI 3.1 中包含了许多改进。对我们而言,最突出的新增/变更是:

  • Schema Object 现已完全符合 JSON Schema Draft 2020-12,原始类型也已更新为基于 JSON Schema Draft 2020-12。
  • Webhooks 已作为顶级字段引入 OpenAPI Object,允许描述作为 API 一部分可用的带外注册 Webhooks。
  • Components Object 现在允许定义 pathItems,从而在 OpenAPI 文档中推广使用可重用的 Path Item Objects
  • Info Object 支持在原有 description 字段旁边添加一个 summary 字段。
  • License Object 新增了一个用于 SPDX 许可证代码的标识符字段。
  • 有效 OpenAPI 文档的构成也发生了变化。规范现在要求顶级至少存在 pathscomponentswebhooks 之一。以前的规范版本要求存在 paths。现在,一个有效的 OpenAPI 文档可以只描述 webhooks,甚至只描述可重用组件。

有关变更的详细列表,请参阅 Mike Ralphson(OAS TSC 成员)的这篇文章。 

Swagger 中的 OpenAPI 支持

以下是 OpenAPI 3.0 和 3.1 当前支持级别概述。我们很快将发布更详细的字段级别细分。

OAS

ApiDOM

Swagger Editor (下一代) 

Swagger Core 

Swagger Parser 

Swagger UI 

Swagger Client 

OpenAPI Object 

Info Object 

Contact Object 

License Object 

Server Object 

Server Variable Object 

Component Object 

Paths Object 

Path Item Object 

Operation Object 

External Documentation Object 

Parameter Object 

(部分限制) 

Request Body Object 

Media Type Object 

Encoding Object 

(部分限制) 

Responses Object 

Response Object 

Callback Object 

Example Object 

Link Object 

Header Object 

Tag Object 

Reference Object 

Schema Object 

(部分限制) 

(部分限制) 

(部分限制) 

(部分限制) 

(部分限制) 

(部分限制) 

Discriminator Object 

XML Object 

Security Scheme Object 

OAuth Flows Object 

OAuth Flow Object 

Security Requirement Object 

Specification Extensions 

后续计划

下一步的重点将是弥补 OpenAPI 3.1 支持中发现的任何空白。此外,还将与更广泛的社区合作,确保 OpenAPI 3.1 的最新 Swagger 功能能够落实和被采用。

我们致力于在广泛的 API 规范和语言领域支持 API 社区。为此,我们计划公开 Swagger 路线图,并提供有关我们最新创新的一些更新。为了在跨项目规范支持方面保持透明,我们将很快提供相关参考信息。 

我们非常欢迎您参与 Swagger 的开源计划。随时查阅我们的贡献指南,并随时贡献您的力量。

© . All rights reserved.