不喜欢广告? 无广告 今天

OpenAPI 2 到 3 版本转换器

数据开发人员
广告 移除?

选项

广告 移除?

指导

OpenAPI v2 到 v3 转换器

OpenAPI 2 到 3 版本转换器

粘贴一个 Swagger 2.0 规范,即可获得一个有效的 OpenAPI 3.0.3 版本,格式可为 JSON 或 YAML。转换器会应用官方结构映射规则——将 definitions under components/schemas合并 host, basePath,并且 schemes 进入 servers拆分 consumesproduces 转换为每个操作的 content 映射,并重新设计表单参数和安全定义——以确保您的规范能够与现代 OpenAPI 工具兼容。

如何使用

  1. 将您的 Swagger 2.0 规范粘贴到输入框中。支持 JSON 和 YAML 格式,格式将自动检测。
  2. 选择输出格式:保持输入格式,或强制输出为 JSON 或 YAML。
  3. 离开 补全缺失的必填字段 以自动填充 v3 中的必需字段,如 info.title, info.version,以及当 v2 源规范省略响应描述时补全缺失的响应描述。
  4. 阅读转换摘要和上方显示的任何警告,然后复制或下载生成的 OpenAPI 3.0.3 规范。

特征

  • 输入为 JSON 或 YAML,输出为 JSON 或 YAML ——选择您偏好的格式,或与输入格式保持一致。
  • 结构映射definitionscomponents/schemas, securityDefinitionscomponents/securitySchemes, parameters/responses 被移入 components,并且每个 $ref 指针都会被重写以匹配。
  • 来自 host、basePath、schemes 的服务器 ——合并为 v3 的 servers 数组,当存在多个协议时优先选择 HTTPS。
  • 内容协商consumesproduces 被转换为每个操作的 requestBody.contentresponses[*].content 映射。
  • 请求体和表单参数in: body 变为 v3 requestBody,并且 in: formData 字段被归入一个 multipart/form-dataapplication/x-www-form-urlencoded 请求体模式。
  • 安全流程升级 ——OAuth2 flow 值被重新映射到 v3 flows 对象(implicit, password, clientCredentials, authorizationCode).
  • 补丁模式 ——当启用时,会填充缺失的必填字段,使输出通过 v3 验证器,而不是在源规范的微小缺陷上失败。
  • 转换摘要和警告 ——统计转换的路径、模式和安全方案数量,以及无法一一映射的任何警告。
  • 完全在浏览器中运行 ——您的规范不会离开页面。

常问问题

  1. Swagger 2.0 与 OpenAPI 3.0 之间在结构上发生了哪些变化?

    OpenAPI 3.0 将可重用的部分统一归入一个 components 对象: definitions 变为 components/schemas, parameters 变为 components/parameters, responses 变为 components/responses,并且 securityDefinitions 变为 components/securitySchemes。传输表面也发生了变化: host, basePath,并且 schemes 被合并为一个 servers 包含完整基础 URL 的数组,而隐式的 consumesproduces 数组被替换为每个请求体和响应上按媒体类型键值的显式 content 映射。

  2. 为何 OpenAPI 3.0 需要为请求体设计新的结构?

    在 Swagger 2.0 中,请求体只是另一个带有 in: body的参数,而表单字段是带有 in: formData的参数。这将两个不同的关注点(路径/查询/头部参数与请求负载)合并为一个列表,使得内容类型协商变得复杂。OpenAPI 3.0 将它们分开:参数仅用于路径、查询、头部和 Cookie;请求负载则移动到顶层的 requestBody SOAP在XML之上增加了一层:每个响应都被包裹在一个 content 映射中。这使得您可以描述一个端点,该端点接受 application/json, multipart/form-data,并且 application/x-www-form-urlencoded ,并为每个类型提供不同的模式。

  3. Swagger 2.0 和 OpenAPI 3.0 是否在通信层面兼容?

    不兼容。它们是描述格式版本,而非 API 协议版本,因此转换后的规范不会改变服务在运行时的响应方式——但工具(生成器、验证器、模拟服务器、UI 查看器)必须理解您发布的版本。OpenAPI 3.0 引入了 v2 没有等效功能的新特性,包括 oneOf/anyOf/not、回调、链接和更丰富的安全流程。因此,从 v3 到 v2 的转换通常是不可逆的,而从 v2 到 v3 的转换则主要是机械性的,因为 v2 是 v3 表达力的一个严格子集。

  4. 在此上下文中,“解析”是什么意思? $ref 是像

    A $ref 这样的 JSON 引用指针。转换必须重写每一个指针,因为目标路径发生了变化: #/definitions/User,依此类推。指针本身不会被解析(文档仍通过位置引用),但必须与结构移动同步重写,以确保生成的 v3 规范在内部一致性。 #/definitions/User 变成 #/components/schemas/User, #/parameters/AuthHeader 变成 #/components/parameters/AuthHeader粘贴您的 Swagger 2.0 规范到这里(YAML 或 JSON)...

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 移除?
广告 移除?
广告 移除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 移除?