Mulesoft 加入开放 API 倡议:Swagger 和 OAS 的未来展望

  2017 年 4 月 25 日

2017 年 4 月 24 日,Mulesoft 加入 开放 API 倡议 的消息传出。Mulesoft 是 RESTful API 建模语言 (RAML) 的倡导者,RAML 是一种用于设计 API 的描述格式。 Mulesoft 加入 OAI 表明软件行业在 Swagger/Open API 规范 (OAS) 上达成了共识。我想借此机会讨论一下这段历史,以及我们对 OAS 未来的期望。

一切如何开始

API 定义/规范已成为 API 生命周期的一个重要方面,并触及从计划到弃用的每个阶段。虽然 WADL 是用于描述 RESTful 服务的 XML 中主要的描述格式,但它并不是最佳的人工可用且可读的选项。2010 年,Swagger 横空出世,这是一种机器和人类可读的描述格式,用于定义 API 的联系方式。此联系方式定义了资源和服务公开的数据,以及客户端应如何调用这些资源。虽然这个想法看起来很简单,但在多平台 API 经济中,它具有强大的意义,因为服务以多种语言构建,并被不同设备上的客户端使用。Swagger 的创建者 Tony Tam 回顾了 Swagger 规范的目标,在最近发表于 Swagger 博客的文章中:
  • 易于人类阅读。这意味着该规范必须简洁、有条理且足够清晰,以便“普通”人可以理解它。
  • 易于机器读取。这需要结构和“规则”,以便规范本身可以被计算机解释为“执行一些有用的操作”。
  • 足够详尽,足以描述使用或生成 REST API 所需的一切。
随着开源 Swagger 规范的普及,其他描述格式也相继发布。API Blueprint 于 2013 年发布,重点是易用性并提供更好的人类可读文档。开发 RAML 的目的是为了让开发人员在编写代码之前更好地建模和原型化 API。这些描述格式分别由 Apiary 和 Mulesoft 推广。从业者和消费者之间就最佳描述格式进行了健康的辩论。然后在 2015 年,Swagger 规范由SmartBear Software捐赠给了 Linux 基金会下的开放 API 倡议,旨在标准化该格式的采用和开发,并将其重命名为 OpenAPI 规范 (OAS)。许多行业巨头都是该组织的一员,包括 IBM、微软和谷歌。最终,Apiary 和 Mulesoft 正式加入 OAI,这结束了关于公认的 API 规范的争论——Swagger 是行业想要的。

期望什么?

现在有如此多的重量级企业加入 OAI,以进一步开发和标准化 OAS,尤其是 RAML 和 API Blueprint 背后的公司,我们可以期望看到 API 描述的未来出现一些创新性的突破。以下是我期望看到的规范演变。

关注开发者体验

OAS 通过使所有利益相关者与 API 应如何运行保持同步,从而使开发团队的生活更轻松。然而,归根结底,API 的好坏取决于它们的消费。Swagger UI 一直是开发人员为其基于 OAS 的 API 生成文档的最简单方法,它总是可以迭代和改进的。随着规范的不断发展,我希望看到更加重视改进 OAS 的文档功能,超越 Swagger UI 的传统功能,并生成不同格式(如 HTML 和 PDF)的出色文档。

关注可持续性

RAML 一直强调长期 API 设计和可持续性。随着 RAML 的创建者现在加入 OAI,我希望看到 OAS 发展以支持可持续设计,允许开发人员利用传统上不符合 REST 规范的编程语言进行长期扩展。我们还可以看到更灵活的合同原型选项,同时仍然允许全面的 RESTful 设计。

关注创新

OAI 的所有成员都以在不同技术领域大力投资创新和颠覆而闻名。随着更多有主见的公司和有影响力的人加入 OAI,很有可能会进行健康的辩论和对话,从而在 API 描述市场中带来更好的创新。OAS 的下一个版本已经支持一些很棒的功能,例如链接(非常适合超媒体 API)、跨资源的多种安全流程以及更简单的请求-响应格式。API 设计和文档工具已经在向 OAS 转变。今天,Swagger 团队继续投资为实施 OAS 带来下一阶段的开源工具。流行的 Swagger 编辑器和 UI 已经从头开始重新设计,将代码合并到一个统一的代码库中,这将使开源项目更容易使用和贡献。这种统一的体验为开发人员和最终用户建立了一个通用框架,用于设计、工程化和使用以 OpenAPI 规范编写的 API,并为与未来的OpenAPI 规范 3.0(今年晚些时候发布时)的兼容性奠定了基础。由 Swagger 背后的同一团队领导的 SwaggerHub 的构建考虑到了组织在使用 OAS/Swagger 规范构建 API 时的需求。SwaggerHub 为您的整个团队提供了一个中心平台,用于跨 API 的生命周期使用 OAS。看到这些工具如何发展以及 OAS 中添加的新功能将会令人兴奋。 在 Tony Tom 最近发表于 Swagger.io 博客的博文中,了解有关 Swagger 演变的更多信息:MuleSoft 加入 OpenAPI 倡议:API 规范之战的结束