大约一个月前,我们承诺推出 OpenAPI 规范 (OAS) 的第一个实现者草案,现在它已经发布了!根据我们的官方版本控制方案,此版本称为 3.0.0-rc0。这是朝着发布规范最终版本迈出的重要一步。
在发布最终版本之前,规范的进一步开发将在 OpenAPI.next 分支中继续进行。3.0.0-rc0 版本已 标记为固定参考。
自从我们 上一篇博文以来,我们已经解决了规范中剩余的结构性更改,并澄清了一些问题和疑虑,并改进了文档。从那时起的一些显著变化包括:
- 完成了对 URL 模板的支持。
- 重新设计了对“multipart/*”和“x-www-form-urlencoded”的支持,更改了文件上传的处理方式,并删除了“file”类型和“formData”参数类型。
- 请求主体现在正式 不支持用于 HTTP 动词,因为其行为未定义。
- 阐明了如何处理相对 URL 作为值。
- 回调的表达式语言已重新设计。
- 示例文档已得到澄清。
- Schema 对象已更新,以支持空值传输值的“nullable”,并添加了 writeOnly 属性。
- 对 JSON Schema 的支持已更新至版本 draft-wright-json-schema-00(也称为 Draft 05)。已阐明 OAS 实现与 JSON Schema 之间的差异。
- Header 对象已更新,以遵循与 Parameter 对象类似的标准。因此,Items 对象已删除。
目前,规范已“功能完整”,这意味着我们不会积极讨论添加对现有工单的支持。在接下来的几周内,我们将关闭已处理的工单或将其标记为将来版本。
接下来是什么?
实现者草案标志着推动规范第三代的一个转折点。正如我们在 2.0 版中观察到的那样,如果没有工具,规范就毫无意义;如果没有规范,工具就毫无意义。此草案意味着所有主要更改都已完成,并且鼓励工具作者针对它进行构建,因为从现在开始,预计只会发生细微的更改。并且就像 2 版一样,这是一个抢先一步并引起人们对您项目的关注的好机会。这也是参与 OpenAPI 社区并帮助推动规范发布的有意义的方式。
这意味着球在你手中。以下是你如何提供帮助的方法
- 编写您自己的工具以添加对规范的支持——毕竟它是一个实现者草案。这是我们唯一能够了解这些更改运行效果如何以及推送的内容是否可用且可以完全实现的方式。正在开发此类工具?通过在 OpenAPI 规范存储库中提交问题来告知我们!
- 查找规范中的技术问题:规范各部分之间的矛盾、毫无意义的功能、我们没有考虑到的用例。确保跟进主题的线程和 PR,以查看当前实现是否有现有的理由。
- 查找规范中的内容问题:缺少句号、错别字、错误示例、措辞不当等。
顶级贡献者将获得 OpenAPI Initiative 的感谢。
与以前一样,我们可能会要求对特定工单进行贡献或反馈——这些工单将被标记为“需要帮助”。密切关注这些工单,不要害怕加入讨论。
感谢所有为这一重大进步做出贡献的人,并继续努力发布最终的 OpenAPI 规范 3.0.0 版本。