跳至主要内容
类别

博客

OpenAPI 3.1 Confoo 通行证赠送活动

作者 博客

即将推出 - OpenAPI 规范 (OAS) 3.1.0!

您还记得过去观看即将上映电影的预告片时那种兴奋和期待的感觉吗?虽然电影院可能仍在关闭,但您无需失去对新版本的期待,尤其是那些制作了三年的版本。我们怀疑你们中的许多人一直坐在那里,手指悬停在键盘上,焦急地等待着 OpenAPI 3.1.0 的发布。

好吧,等待结束了!关于新功能的消息开始出现,我们很好奇 OpenAPI 3.1.0 中哪些部分您最期待。是 JSON Schema 兼容性、新的 Webhook 支持、改进的可重用性……?

如何获得 Confoo 的免费通行证?

很简单!告诉我们您最喜欢的功能,并简要说明您计划如何使用它。我们将把您纳入抽奖活动,有机会获得免费参加 Confoo 2021 的通行证,活动将于 2 月 24 日至 26 日举行。

要参加,请在 2 月 22 日星期一东部时间下午 5 点之前,在推文中提及 @openapispec 并使用 #oas31confoo 标签。获胜者将由随机数生成器选出。

会议即将到来(OpenAPI 3.1.0 的发布也很快)。请发送您的反馈。

OpenAPI 规范依赖于像您这样的开发者来保持其最新和相关性。加入我们,在 API 标准的未来留下您的印记。OpenAPI 新手?订阅我们的时事通讯!

从 OpenAPI 3.0 迁移到 3.1.0

作者 博客

这篇文章由 Stoplight 产品经理兼 Protect Earth 主席 Phil Sturgeon 撰写。如果您想捐赠给 Phil 选择的慈善机构,请访问 Protect Earth,该机构正在逐个地块重新造林英国。

OpenAPI v3.1 带来了许多很棒的新功能和改进,在不久的将来,您可能会发现自己想要升级。如果您准备尝试,让我们看看为了升级到 OpenAPI v3.1,您可能需要或不需要进行哪些更改。

首先,让我们更改版本号!打开您的 OpenAPI JSON 或 YAML 文件,然后查找以下行

openapi: 3.0.3

将其更改为。

openapi: 3.1.0

如果您看到的是 `swagger: 2.0` 而不是 `openapi: 3.0.3`,请查看 swagger2openapi 是否可以帮助您升级到 v3.0,然后再继续。

在理想情况下,这将是您需要做的所有事情,但尽管是次要版本号,v3.1 确实有一些小的破坏性更改。做出这个决定并非易事。值得庆幸的是,破坏性更改的范围非常小,仅限于 Schema 对象,并且实现了更大的目标:与现代 JSON Schema 完全兼容。

OpenAPI Schema 现在是有效的 JSON Schema

OpenAPI 中 `schema` 关键字内的所有内容都由Schema 对象定义。它一直都是松散地基于 JSON Schema,并被称为“子集超集”,因为它在 JSON Schema 的基础上添加了一些内容,并删除了一些其他内容。这给 OpenAPI 社区中的一些人带来了困惑。为了解决子集超集问题,来自这两个社区的贡献者走到一起,使这两个规范保持一致。

OpenAPI v3.0 基于 JSON Schema Draft 05,而 JSON Schema 从那时起经历了一些草案:Draft 06、Draft 07 和 Draft 2019-09。现在,由于在 v3.1.0 发布候选版本期间从用户和工具维护人员那里收集到的反馈,又发布了一个小型草案:Draft 2020-12。这应该是一段时间内的最后一个草案,JSON Schema 团队没有计划进行重大更改,因此如果一切顺利,最终版本即将发布,以避免任何进一步的差异。

支持现代 JSON Schema 带来了许多方便的新功能,包括能够使用用于元组的 items 数组,或者使用 if/then/else 关键字作为笨拙的嵌套 allOf > oneOf 链的替代方案,一些人使用这些链来处理更动态的有效负载。我们现在不需要学习 JSON Schema 的所有新内容,但如果要升级,我们需要知道在 OpenAPI 文档中需要更改什么。

Schema 对象更改

将 nullable 替换为 type 数组

与 JSON Schema 一致,`type` 关键字现在可以使用数组为架构定义多种类型。这是一个有用的新功能,但也使 nullable 变得多余。为了实现让 JSON Schema 工具理解 OpenAPI 的目标,决定完全删除 nullable 而不是弃用它。

# OpenAPI v3.0
type: string
nullable: true

# OpenAPI v3.1
type:
- "string"
- "null" 

这遵循了关键字独立性概念,即关键字应该只添加约束,但添加一个或多个关键字不应该删除约束。查找和替换应该可以快速解决此问题。

调整 exclusiveMinimum 和 exclusiveMaximum

这两个关键字过去接受布尔值,这将修改 `minimum` 和 `maximum` 属性的含义。在 OpenAPI v3.1 中,它们是不同的值。

# OpenAPI v3.0
minimum: 7
exclusiveMinimum: true
# OpenAPI v3.1
exclusiveMinimum: 7

同样,这可以通过一些查找和替换来解决,而且我敢打赌你们中的许多人甚至都没有将此关键字用于任何用途。

使用 examples 而不是 example

OpenAPI 有很多地方可以包含一个示例或多个示例。OpenAPI v3.0 可以在媒体类型级别(请求、响应、回调和 Webhook)包含 `example` 或 `examples`,但它也可以在 Schema 对象内部包含非常不同类型的 `example`。此架构对象单一示例是 OpenAPI 特定的关键字,现在不再需要,因为 JSON Schema 具有 `examples`。

这可能需要可视化,我将推迟到Lorna Mitchell,因为她在 APIDays Paris 的演讲中制作了一些优秀的幻灯片。

# OpenAPI v3.0
type: string
example: fedora
# OpenAPI v3.1
type: string
examples: 
 - fedora

基本上,将 `schema` 内部的任何 `example` 更改为 `examples`,并在开头添加连字符(即 YAML 数组)。

如果您完全手动编写 YAML 而不是使用可视化编辑器,这将需要更多键入,但它也是一项功能:添加多个示例现在变得容易多了。过去,要为属性或架构获取多个示例,您必须切换正在使用的示例类型,从属性示例切换到媒体类型示例,这感觉有点过头了。现在您可以这样做

type: string
examples: 
 - fedora
 - ubuntu

描述文件上传有效负载

在 OpenAPI v3.0 中,文件上传的描述通过类型:字符串和格式设置为字节、二进制或 base64 来表示。JSON Schema 通过其 contentEncoding 和 contentMediaType 关键字使这变得更加清晰,这些关键字专为这类用途而设计。

在 POST 请求中上传二进制文件?现在甚至不需要使用架构。

# OpenAPI v3.0
requestBody:
  content:
    application/octet-stream:
      schema:
        type: string
        format: binary

# OpenAPI v3.1

# OpenAPI v3.1
requestBody:
  content:
    application/octet-stream: {}

使用 base64 编码上传图像?

# OpenAPI v3.0
requestBody:
  content:
    image/png:
      schema:
        type: string
        format: base64
# OpenAPI v3.1
requestBody:
  content:
    image/png:
      schema:
        type: string
        contentEncoding: base64

带有二进制文件的 Multipart 文件上传?

# OpenAPI v3.0
requestBody:
  content:
    multipart/form-data:
  	schema:
       type: object
       properties:
        orderId:
          type: integer
        fileName:
          type: string
          format: binary
# OpenAPI v3.1
requestBody:
  content:
    multipart/form-data:
  	schema:
       type: object
       properties:
        orderId:
          type: integer
        fileName:
          type: string
          contentMediaType: application/octet-stream

此关键字支持 RFC4648 中定义的所有编码,包括“base64”和“base64url”,以及 RFC2045 中的“quoted-printable”。

声明 $schema 方言以防止更改

这就是您需要更改的内容,我还可以讨论很多其他功能,但有一件事可以帮助避免将来发生更改,那就是能够在架构中定义 $schema。

$schema 现在允许

$schema 关键字是可选的,但它是一种有用的方法,可以精确定义模型使用的是哪个 JSON Schema 方言,这可能是不同的草案,甚至自定义方言。支持多种方言的工具可以以略微不同的方式处理文件,这意味着您并不总是需要在将来升级 OpenAPI 版本时对所有模型进行更改。

OpenAPI 与 JSON Schema 完全兼容,因为它现在是 JSON Schema 方言,因此默认情况下,任何架构都使用 `$schema. “https://spec.openapis.org.cn/oas/3.1/dialect/base”` 方言。如果您将架构拆分为其他 JSON/YAML 文件并使用 $ref 指向它们,则它们可能包含不同的 $schema 并覆盖此默认值。

{
   $schema: "http://json-schema.org/draft-07/schema#",
}

这使得工具维护人员的工作变得容易得多,因为他们不再需要尝试通过查看架构的引用位置来猜测架构是什么草案。过去,这会导致不可能出现的情况,即单个架构同时被 OAS2 和 OAS3 引用,并且可能工作了一段时间,直到添加了 OAS3 特定的关键字,现在 OAS2 用法的所有内容都已损坏。

现在,所有模型都可以声明自己的方言,如果 OpenAPI 文档引用了工具不知道如何解析的方言,则会立即清楚,而不是在使用几个月后才出现故障并让每个人都感到困惑。

OpenAPI Initiative 欢迎 Ambassador Labs 成为最新成员

作者 公告, 博客

Ambassador Labs 使应用程序开发人员能够在 Kubernetes 上更快地发布软件。该公司的 Kubernetes 原生 API 网关 提供了一个开源开发工具包,用于开发、管理和监控微服务架构,使开发人员能够为 Kubernetes 服务采用云原生开发工作流程。

“我们非常致力于改进对产品中 OAS 的支持,因此加入 OAI 对我们来说是自然而然的举动,因为我们与 OpenAPI 社区更加紧密地结合在一起,”Ambassador Labs 首席执行官 Richard Li 说。“在云原生世界中,标准化的 API 定义在无需强大的集中协调的情况下,在独立的、快速发展的团队之间创建了一个自然的集成点。”

“我们很高兴欢迎 Ambassador Labs 加入 OpenAPI Initiative。API 和微服务相互强化,这种协同作用是标准化我们描述 API 方式如此重要的关键原因,”Google Cloud 产品经理兼 OpenAPI Initiative 技术指导委员会成员 Marsh Gardiner 说。“我们期待与 Ambassador Labs 合作,发展和推广 OpenAPI 规范等 API 标准。”

来自 Ambassador Labs

Ambassador Labs 是 Edge Stack(最受欢迎的 Kubernetes 原生 API 网关)的制造商,很荣幸加入 OpenAPI Initiative 并与 OAI 合作,建立和宣传 OAS 在 API 开发中的标准化。Ambassador Labs 始终专注于 云原生开发人员体验,这体现在其专门的开发人员工具以及提供的 集成 API 开发人员门户 中。

Ambassador Labs 采取了全面的视角来支持开发人员,这源于他们的信念:尽管 Kubernetes 代表了技术的重大转变,但它实际上代表了改变开发人员工作方式的机会。“云原生”的成功转变需要多个因素到位,包括 API 的标准化,这是提供最佳开发人员体验的关键。

详细了解开源 Ambassador API 网关 以及 Ambassador 如何使云原生开发人员能够在 www.getambassador.io 上创建灵活性和降低复杂性。

OpenAPI 资源

要了解有关如何参与 OpenAPI 规范演变的更多信息:https://www.openapis.org.cn/participate/how-to-contribute

关于 Ambassador Labs

Ambassador Labs 使开发人员能够无惧发布。Ambassador Labs 是流行的 Kubernetes 开源项目 Ambassador Edge Stack 和 Telepresence 的制造商,受到全球数万名开发人员的喜爱。Ambassador Labs 拥有遍布全球的团队,并被微软、PTC、英伟达和 Ticketmaster 等公司使用。加入我们的社区:https://www.getambassador.io

关于 OpenAPI Initiative

OpenAPI Initiative (OAI) 由一群具有前瞻性的行业专家创建,他们认识到标准化 API 描述方式的巨大价值。作为 Linux 基金会下的一个开放治理结构,OAI 专注于创建、发展和推广供应商中立的描述格式。OpenAPI 规范最初基于 Swagger 规范,由 SmartBear Software 捐赠。要参与 OpenAPI Initiative,请访问 https://www.openapis.org.cn

关于 Linux 基金会

Linux 基金会成立于 2000 年,拥有 1000 多名成员的支持,是全球领先的开源软件、开放标准、开放数据和开放硬件协作中心。Linux、Kubernetes、Node.js 等 Linux 基金会项目被认为对构建世界上最重要的基础设施至关重要。其开发方法利用既定的最佳实践,并满足贡献者、用户和解决方案提供商的需求,以创建可持续的开放协作模型。有关更多信息,请访问 linuxfoundation.org。

OpenAPI 欢迎新成员 High School Technology Services

作者 公告, 博客

OpenAPI Initiative 是一个由具有前瞻性的行业专家组成的联盟,专注于创建、发展和推广 OpenAPI 规范 (OAS),OAS 是一种用于 RESTful API 的供应商中立的开放描述格式。今天宣布 High School Technology Services (HSTS) 已加入成为新成员。

为什么 HSTS 加入 OpenAPI Initiative?来自 HSTS

Matt Zand 是 HSTS 的总裁,HSTS 为高中生和成人提供编码和技术培训。他还运营着 3 个社区 Meetup 小组(编码和技术课程JavaScript DC编码训练营),在华盛顿特区都会区拥有 4400 名成员。通过我们的现场活动和培训服务,我们教授学生如何构建和管理 API 应用程序(如 RESTful API),并在此过程中推广 API 设计、开发和维护的最佳实践。

HSTS 还与 编码训练营 合作,提供更多与 API 工具和框架相关的自主学习培训。同样,HSTS 已与 DC Web Makers 合作,构建和实施 API 解决方案,尤其是与区块链应用程序相关的解决方案。具体来说,大多数区块链数据存储在链外,其中使用安全且可扩展的开放 API 将链上网络中的数据连接和交换到链外数据库。简而言之,在区块链应用程序的生产中,开发人员需要设计和开发多个 API,其中大部分属于 OpenAPI 项目。

通过 API 的培训和实践实施,HSTS 计划致力于 API 规范,以设计、原型设计和记录 API 生命周期。

API 采用的一个关键障碍是缺乏适当的培训,因为许多小型公司缺乏在规划、设计和开发其 API 应用程序方面熟练的专业人员。同样,API 经济需要来自组织各部门的熟练人员进行协作。我们相信,随着区块链和人工智能等新兴技术的出现,精心制作的标准化——真正的开放 API 将在公司的 IT 运营和管理中发挥至关重要的作用。事实上,公司越追求自动化最佳实践,就越重视 API 的重要性。因此,为了实现这一目标,公司需要为其 IT 团队提供有关 API 设计和开发方法以及标准的最新培训。这就是构建出色 API 的方式!在我们为社区提供 API 培训和最佳实践的过程中,我们在我们的网站上撰写和发布了许多实践指南(文章和教程)。要了解有关我们的培训服务的更多信息,请访问 https://myhsts.org/

OpenAPI 资源

要了解有关如何参与 OpenAPI 规范演变的更多信息:https://www.openapis.org.cn/participate/how-to-contribute

关于 OpenAPI Initiative

OpenAPI Initiative (OAI) 由一群具有前瞻性的行业专家创建,他们认识到标准化 API 描述方式的巨大价值。作为 Linux 基金会下的一个开放治理结构,OAI 专注于创建、发展和推广供应商中立的描述格式。OpenAPI 规范最初基于 Swagger 规范,由 SmartBear Software 捐赠。要参与 OpenAPI Initiative,请访问 https://www.openapis.org.cn

关于 Linux 基金会

Linux 基金会成立于 2000 年,拥有 1000 多名成员的支持,是全球领先的开源软件、开放标准、开放数据和开放硬件协作中心。Linux、Kubernetes、Node.js 等 Linux 基金会项目被认为对构建世界上最重要的基础设施至关重要。其开发方法利用既定的最佳实践,并满足贡献者、用户和解决方案提供商的需求,以创建可持续的开放协作模型。有关更多信息,请访问 linuxfoundation.org。

Vonage 加入 OpenAPI Initiative

作者 公告, 博客

Vonage 发布的新闻稿

Vonage 是全球领先的 云通信 公司,致力于帮助企业加速数字化转型,今天宣布已加入 OpenAPI Initiative,这是一个由具有前瞻性的行业专家组成的联盟,专注于创建、发展和推广 OpenAPI 规范 (OAS)。

OAS 是一种用于 RESTful API 的供应商中立的开放描述格式,使人和计算机都能够在无需访问源代码、文档或通过网络流量检查的情况下发现和理解服务的 capabilities。

OpenAPI 是更广泛的 API 社区的重要标准,并被大多数有助于推动该行业的 API 服务提供商所采用。作为 OpenAPI 成员的一部分,Vonage 代表还将加入 Open API 业务治理委员会和技术指导委员会,在决定 OpenAPI 标准方向和细节的会议上代表公司。

“在 Vonage,我们认同 OpenAPI 的理念,即技术应该易于使用且对所有人开放,”Vonage 产品管理高级副总裁 Roland Selmer 说。“我们很高兴加入 OpenAPI,这是一个对我们的开发者网络至关重要的社区,并且在我们专注于未来 API 路线图以及我们致力于加速世界连接能力的承诺方面,它将成为我们宝贵的资源。”

Vonage API 平台拥有超过 100 万名注册开发人员的不断增长的网络,是完全可编程的,使企业能够将视频、语音、聊天、消息和验证集成到其现有的产品、工作流程和系统中——只需几行代码,无需现场开发人员或专业知识。Vonage 开发者社区打破了进入壁垒,因此任何开发人员都可以从第一天起就接触到全球受众。

“标准对于帮助行业扩展至关重要。OpenAPI 规范已成为描述现代 API 的有用工具。Vonage 加入 OpenAPI Initiative 将有助于我们多元化的成员发展这一重要标准,”OpenAPI Initiative 营销组主席兼 Google Cloud 产品经理 Marsh Gardiner 说。

Vonage 通信平台使用 Vonage API 构建,提供更灵活、更智能和更个性化的下一代通信,使企业能够把握未来并保持领先地位。

关于 Vonage

Vonage(纳斯达克股票代码:VG)是全球领先的云通信公司,致力于帮助企业加速数字化转型。Vonage 的通信平台是完全可编程的,允许将视频、语音、聊天、消息和验证集成到现有的产品、工作流程和系统中。Vonage 完全可编程的统一通信和联络中心应用程序构建于 Vonage 平台之上,使企业能够改变其沟通和运营方式,无论是在办公室还是在任何地方,提供巨大的灵活性和确保业务连续性。

Vonage Holdings Corp. 总部位于新泽西州,在美国、欧洲、以色列、澳大利亚和亚洲设有办事处。要关注 Vonage 的 Twitter,请访问 twitter.com/vonage。要成为 Facebook 粉丝,请访问 facebook.com/vonage。要订阅 YouTube,请访问 youtube.com/vonage

关于 OpenAPI Initiative
OpenAPI Initiative (OAI) 由一群具有前瞻性的行业专家创建,他们认识到标准化 API 描述方式的巨大价值。作为 Linux 基金会下的一个开放治理结构,OAI 专注于创建、发展和推广供应商中立的描述格式。OpenAPI 规范最初基于 Swagger 规范,由 SmartBear Software 捐赠。要参与 OpenAPI Initiative,请访问 https://www.openapis.org.cn

来自 APIDays Paris:OpenAPI 3.1 即将推出

作者 博客

最初发布于LORNAJANE博客 – 感谢Lorna!

OpenAPI 3.1的新特性

随着OpenAPI 3.1即将“发布”,我在APIDays巴黎做了一个关于可以期待什么的演讲。但我非常喜欢将文字作为参考,所以这里是对下一个OpenAPI版本中内容的书面总结。

主要特性
– 兼容JSON Schema 2020-12
– Webhook支持
– 许多其他小的改进

版本编号

从OpenAPI 3.1开始,OpenAPI项目不再遵循语义版本控制。这听起来像一个完全不负责任的决定,但对于一个标准来说,它实际上是有意义的,因为每个API描述都清楚地说明了它所关联的OpenAPI版本。此外,他们也不让我制定规则,可惜!这不是一个主要版本,但为了适应JSON Schema,一些东西不得不被撤销并重做。

JSON Schema 2020-12

这是一个重大的消息,OpenAPI的大部分内容都是与JSON Schema一起使用的,而3.0版本发布已经很久了,并没有完全适应今天JSON Schema中所有有意义的东西。这篇文章不会涵盖JSON Schema本身的新特性,但我会尝试从OpenAPI用户的角度总结主要要点。

首先:类型现在可以是**类型数组**,所以某些东西的类型可以是[string,number]。可用的类型还包括null,所以更常见的是[string, ‘null’]。这确实会影响现有的OpenAPI文档,因为从3.1开始,nullable关键字被删除了——使用类型数组,其中一个类型是null。

parameters:
  - name: friendly-label
    in: query
    schema:
      type:
        - string
        - 'null'

OpenAPI 3.1正在为schema中的examples关键字提供支持,允许使用**示例数组**。尽管通常数组只包含一个元素。最初的单数example关键字仍然有效,但examples是推荐的,如果两者都存在,则优先使用examples。请注意,这个值数组与OpenAPI中examples的**其他**用法形成了对比,在MediaType内容对象中,examples字段是一个带有字符串键的映射。困惑了吗?我们也是。Phil有一篇关于OpenAPI示例的文章,它解释了所有内容!

还有一些其他内容来自JSON Schema进入OpenAPI schema。首先:schema中允许任意键;OpenAPI已经放宽了其对哪些字段可以在哪里出现的约束,以适应JSON Schema格式对象。还可以对一个对象进行$ref引用,然后在其旁边放置键,这些键被认为是除了组件中定义的内容之外的。

content:
  'application/json':
    schema:
      $ref: '#/components/schemas/style'
      required:
        - hue

这些更改都不算很大,但是能够在OpenAPI中使用JSON Schema对于任何想要将两者结合使用的人来说都是非常棒的,因此对持续改进的JSON Schema的支持承诺是一个极好的消息。

Webhooks

我完全有偏见,因为我提出了这个特性。我简直不敢相信OpenAPI还没有支持这个常见的用例,而且花了一些时间才意识到,这不是我不理解如何做某事——这件事真的超出了OpenAPI 3.0对API描述的预期。

OpenAPI 3.0确实支持**回调**,所以如果用户应该进行API调用,提供一个URL,并等待传入到该URL的HTTP请求作为结果,那么这已经被支持了。当端点异步返回数据,或者在某些API调用“订阅”事件并提供一个发送数据的URL的情况下,这非常理想。

OpenAPI 3.1更进一步,允许使用**webhooks**,它们是作为对某些外部事件或刺激的响应而传入的HTTP请求。一个很好的例子是,如果你曾经将任何东西链接到GitHub推送事件,或者传入的订单/付款/消息(我为一家通信公司工作了几年,所以你可以立即理解我如何与之纠缠在一起)。webhooks的描述与现有的回调非常相似,事实上,两者都非常类似于现有的请求描述,所以我希望这个更改能够被所有拥有类似双向API的人轻松采用。

新的webhooks关键字是顶级元素,与paths并列。所需字段也发生了一些变化:OpenAPI 3.0需要openapi和info以及paths,但在OpenAPI 3.1中,只有openapi和info始终是必需的,但文档还必须包含paths或webhooks或components中的至少一个。这很棒,因为它允许API描述仅包含传出的API调用、仅包含传入的webhooks、仅包含可能被其他文档引用的组件,或者所有这些的任意组合——并且在自身范围内仍然有效。

无论如何,回到webhooks。

webhooks:
  inbound-sms:
    post:
      operationId: inbound-sms
      requestBody:
        content:
          application/json: ...
      responses: ...

在webhooks部分中,每个传入的“内容”都有一个键(例如上面示例中的inbound-sms),然后它继续……看起来像一个pathItem,因为它就是这样。您不需要指定webhook将传入的URL路径(通常用户可以自行指定),只需解释将要到达的内容,您就完成了。哦,与此相关的是:pathItem现在允许在components部分中使用,并且您可以从path或callback或webhook中对pathItem进行$ref引用。

想抢先体验一下工具支持webhooks后的样子吗?如果您在3.0 OpenAPI文档中使用x-webhooks,Redoc已经提供了预览支持!我的意思是,它看起来就像非常专业的API文档,但这就是我们在这里需要的🙂


关于webhooks和回调的说明。相当多的端点可以被认为是webhook或回调,我已经开始收到关于使用哪一个的问题了。这可能并不重要,但如果没有回调作为响应的前置API调用,那么它绝对是一个webhook。在存在某些带有URL的前置API调用的情况下,如何工作可能取决于您。例如,在Vonage中,传入消息的事件发送位置的配置是在应用程序级别进行的,您是否使用应用程序API来执行此操作——但我宁愿将传入消息webhook详细信息的API描述显示在发送消息API调用旁边,在同一文档中,在消息API描述中进行标记和分组。webhooks关键字为您提供了灵活的方法来按需处理此问题。

小而完美的升级

OpenAPI 3.1中添加了许多小功能,但我挑选了一些我最喜欢的功能来介绍!与每个*.1版本一样,有一些在*.0版本中看起来像是好主意的事情,现在我们可以稍微整理一下,因为我们都在实践中尝试过它们,这是一件好事。

我将从我想立即实施的功能开始(或者在工具允许后立即实施):$ref现在可以将summary和description作为同级元素,并且它们会覆盖对所引用组件的任何现有字段。

paths:
  /items:
    post:
      parameters:
        - $ref: '#/components/parameters/item'
          description: The specific item in question

info部分也有一些小的改动。

  • 在info内部,您现在可以在description字段旁边使用summary。两者都是可选的——title仍然是必需的。
  • 在license对象中,如果您愿意,可以在新的identifier字段中使用SPDX代码,而不是在必需的name字段旁边使用url。

最后,paths不再**需要**为每个端点都具有responses字段。这在OpenAPI文档正在构建时非常有用,因为它意味着即使您还只是在草拟API定义将包含的端点,它也能进行验证。

进一步阅读

录制完成后,我将分享我的演讲链接(幻灯片在noti.st上),并随时关注OpenAPI 3.1版本的当前状态,并阅读项目本身的(更好的)更改日志以获取更多信息https://github.com/OAI/OpenAPI-Specification/releases

Band Protocol成为首家加入OpenAPI Initiative的区块链公司

作者 公告, 博客

Band Protocol新闻稿

**曼谷——2020年12月14日**: 红杉资本支持的跨链数据预言机Band Protocol已加入OpenAPI Initiative,成为继谷歌、eBay和微软之后首家加入该组织的区块链公司,旨在将区块链应用程序连接到通用的应用程序编程接口(API),并简化智能合约与链下数据源之间的数据交换。 

“我们的使命是通过与知名合作伙伴合作,定义区块链应用程序的通用API标准,弥合集中式数据、API和区块链上的智能合约之间的差距,”Band Protocol首席执行官兼联合创始人Soravis Srinawakoon表示。 

API是一种软件中间件,它使两个应用程序能够轻松高效地共享信息,从而增强可访问性和用户体验。 

通过创建通用的API标准,Band Protocol将允许区块链应用程序轻松利用链下API和数据,更好地与集中式数据源和更广泛的技术社区互动,从而实现智能合约的广泛用例。 

这是朝着创建能够可靠且安全地与传统集中式技术和API以及彼此交互的分散式应用程序和智能合约迈出的重要一步。 

“OpenAPI Initiative标准化了行业描述和记录API的方式。我们很高兴欢迎Band Protocol作为首家加入该计划的区块链成员,”OpenAPI Initiative营销小组主席兼谷歌云产品经理Marsh Gardiner表示。 

OpenAPI Initiative是一个非营利基金会,托管在Linux基金会,其成员包括谷歌、IBM、彭博、微软、SAP和Oracle等知名组织。 

该计划致力于定义可在不同行业中使用的通用标准API,Band Protocol成为首家为该计划的协作规范做出贡献的区块链公司。 

有关Band Protocol的更多信息,请访问:https://bandprotocol.com/

关于Band Protocol

Band Protocol是一个跨链数据预言机平台,它聚合并将现实世界的数据和API连接到智能合约。在红杉资本和领先的加密货币交易所Binance的支持下,Band Protocol使DeFi、预测市场和游戏等智能合约应用程序能够在链上构建,而无需依赖集中式预言机的单点故障。有关更多信息,请访问:www.bandprotocol.com 

关于OpenAPI Initiative

OpenAPI Initiative (OAI) 由一群具有前瞻性的行业专家创建,他们认识到标准化API描述方式的巨大价值。作为Linux基金会下属的一个开放治理结构,OAI专注于创建、发展和推广供应商中立的描述格式。OpenAPI规范最初基于Swagger规范,由SmartBear Software捐赠。有关更多信息,请访问:www.openapis.org 

ASC 2020在线——不要ASC,照样学习

作者 博客

OpenAPI Initiative于2020年9月9日至10日在线举办了第二届年度API规范大会(ASC)。ASC是著名的APIStrat大会的重新构想版本,它不断发展,成为对各种API规范感兴趣的人员的必去之地。OpenAPI规范、RAML、Blueprint、gRPC、OData、JSON Schema、GraphQL、AsyncAPI和其他格式都是主题,使与会者能够熟悉这些格式并讨论如何在实践中使用它们。

ASC 大会 373 个独立注册用户中,出席率达到了 91%。共有 318 位参会者,42 位演讲嘉宾,6 家赞助商和 7 名工作人员。与会者反馈非常积极,100% 的调查受访者将整体体验评为“好”、“优秀”或“极好”。88% 的人表示内容质量“优秀”或“极好”。演讲内容包括Github 分享了他们采用 OpenAPI 的历程OAuth2.1 及其他 API 安全更新统一的 API 设计方法等众多引人入胜的话题。

OpenAPI 为本次活动每人仅收取 39 美元,并提供了 18 个社区奖学金名额。我们为Code2040筹集了 2500 美元,并为支持他们的努力感到自豪。

虽然我们错过了与大家面对面交流的机会,但线上活动的一个好处是可以录制所有环节。我们已将这些录制内容发布到OpenAPI Initiative 的 YouTube 频道。此外,许多演讲者也将其幻灯片上传到了Sched。我们还制作了简短的教程,方便大家轻松找到带有幻灯片的环节。

敬请关注,当 ASC 2021 信息发布时,我们将及时告知您。立即订阅我们的新闻资讯!

OpenAPI 3.1 RC1 实现者草案开放反馈 - 请于 11 月 8 日前回复!

作者 博客

呼吁社区参与!请审查 RC1,实施并分享您的反馈意见,截止日期为 11 月 8 日。最终版本将在之后不久发布。

OpenAPI 规范 3.1 的发布候选版本 1 (RC1),即实现者草案,现已开放测试和评估。

这些增强功能解决了 OpenAPI 开发者社区一些最常提出的功能需求。具体来说,OpenAPI 规范现在完全兼容最新版本的 JSON Schema 草案。这得益于 OpenAPI 开发者社区和 JSON Schema 社区成员之间的共同努力。

更改包括

  • 一个新的顶级元素,用于描述在带外注册和管理的 Webhook。非常感谢Lorna Mitchell 推动这项工作,并使用我们新的提案流程
  • 改进对使用标准 SPDX 标识符识别 API 许可证的支持。
  • PathItems 对象现在是可选的,以便更容易创建可重用组件的索引。可重用 PathItems 可以在 components 对象中描述。还支持描述使用客户端证书进行保护的 API。

您可以在此处了解更多关于 RC1 的信息。

特别感谢Henry AndrewsPhil SturgeonBen Hutton 的辛勤工作和支持。

OpenAPI 欢迎新成员 Osaango 加入

作者 公告, 博客

OpenAPI Initiative 是一家由具有前瞻性的行业专家组成的联盟,致力于创建、发展和推广 OpenAPI 规范 (OAS),这是一种与供应商无关的开放式 RESTful API 描述格式。今天,我们宣布 Osaango 已加入成为新成员。

为什么 Osaango 会加入 OpenAPI Initiative?

Marjukka Niinioja 是 Osaango 的创始合伙人,拥有超过 10 年的 API 经验。她和她的团队还组织了 apidays Helsinki 和 APIOps 社区。她解释说:“我们认为 OpenAPI 规范既是问题也是解决方案。对许多人来说,使用规范设计 API 只是一个技术任务,投入的精力最少。对更多的人来说,规范根本不在他们的考虑范围之内。”

“当然,也存在工具支持等问题阻碍人们使用它。然而,我们认为最大的问题是缺乏知识,特别是关于 API 产品化以及 API 管理方面的知识。两者相互关联,并且都受益于使用规范,”她补充道。

“熟练的人才 + 良好的方法 = 优秀的 API”

Osaango 从一开始就一直推广开放标准。Marjukka Niinioja 是 APIOps Cycles 方法的“创始人”。该方法是唯一一种公开许可、精益且面向业务的 API 开发方法,涵盖整个生命周期。该方法既推广也依赖于使用 API 规范来设计、原型设计和记录 API 作为生命周期的一部分。它提倡“APIOps”,即构建 API 的自动化和透明文化。从本质上讲,APIops 类似于 DevOps。APIOps Cycles 方法扩展了 APIOps。它还包括产品管理、业务设计和开发者体验等要素。

该方法已被世界各地的组织采用,从芬兰到阿根廷。正如一位来自阿根廷的用户所说:“我们正在开始构建一个 API 产品,发现 APIOps Cycles 非常棒,因为它帮助我们将精益创业的想法转化到我们的世界中!”

Osaango 与合作伙伴和活跃的社区成员一起,通过聚会和其他活动推动开放的 APIOps 社区,以推广最佳实践。Osaango 的愿景是帮助使 API 经济像软件即服务 (SaaS) 一样成为一种众所周知的商业模式。但是,优秀的 API 和优秀的 API 经济并非偶然产生。对 Osaango 来说,API 代表“所有人皆重要”,而不仅仅是应用程序编程接口。API 经济需要来自组织各部门的熟练人才进行协作。他们需要了解拥有 API 的商业利益。不仅是任何 API,而是良好、制作精良的标准化 API——真正的开放 API。这反过来需要针对 API 的设计和开发方法以及标准。这就是构建优秀 API 的方式!

作为 OpenAPI Initiative 的成员,Osaango 致力于帮助降低使用 OpenAPI 规范的门槛。Osaango 首批参与的一些任务包括:

  • 解决 Initiative 创建的 OpenAPI 文档的可用性和可访问性问题
  • 收集社区关于各种 API 规范的问题,并提供答案和文档,以提升认知度和学习效果

了解更多关于 API 开发的开放许可方法:https://www.apiopscycles.com

OpenAPI 资源

要了解有关如何参与 OpenAPI 规范演变的更多信息:https://www.openapis.org.cn/participate/how-to-contribute

关于 OpenAPI Initiative

OpenAPI Initiative (OAI) 由一群具有前瞻性的行业专家创建,他们认识到标准化 API 描述方式的巨大价值。作为 Linux 基金会下的一个开放治理结构,OAI 专注于创建、发展和推广供应商中立的描述格式。OpenAPI 规范最初基于 Swagger 规范,由 SmartBear Software 捐赠。要参与 OpenAPI Initiative,请访问 https://www.openapis.org.cn

关于 Linux 基金会

Linux 基金会成立于 2000 年,拥有 1000 多名成员的支持,是全球领先的开源软件、开放标准、开放数据和开放硬件协作中心。Linux、Kubernetes、Node.js 等 Linux 基金会项目被认为对构建世界上最重要的基础设施至关重要。其开发方法利用既定的最佳实践,并满足贡献者、用户和解决方案提供商的需求,以创建可持续的开放协作模型。有关更多信息,请访问 linuxfoundation.org。