上次我们说到了OpenAPI及常用的工具APIGEE,今天来讲讲OpenAPI版本的演进。
OpenAPI的规格(OAS)是由Linux基金会制定的,目前的成员机构小到初创企业(如基于K8S的加速器企业Kubeshop)大到老牌500强(谷歌微软),都在参与协助制定和完善其标准(详细名单可参看https://www.openapis.org/membership/members)。
在今年二月份的时候OAS升级到了3.1版本,加入了很多新的元素。对于工具开发厂商(即上述这些企业)提出了新的要求。自2017年OAS3.0版本推出之后,版本的迭代就开始趋稳,四年间几乎只有一些注释的增改。
直至今年二月份,官方发布了OAS3.1版本,做出了以下重大更新:
与JSON格式的字段集融合
推出新的顶级元素,用于描述带外注册和管理的网勾(Webhook);
先说第一个,与JSON Schema的融合。在3.0的时候,OpenAPI只融合了一部分JSON Schema,导致在OpenAPI在调用JSON工具的时候会经常出错。而新的OAS3.1把最新的JSON Schema加载到了此版本中,实现了与JSON工具的完美集成。
再说第二个,在OAS的Github社区里,有Webhook的代码示例,我们拿其中的YAML版本来说,通过定义ref参数可以引入任何外部制品。此外在3.0版本中paths是作为必填参数,而components是作为可选参数,在3.1版本后,paths、components和新增的webhooks三者选其一即可,即要么选择本地路径、要么加载本地组件、要么调用外部制品,从逻辑上来说放宽约束并更易于理解。
最后是一些小更新,首先就是上面的ref参数在OAS3.1中可以有两个子参数分别是summary和description,可以提升该描述的辨识度。同样在Info部分也添加了summary子参数,以添加代码可读性。
在Info部分还增加了license的SPDX(软件包数据交换)标记,以借助SPDX实现代码的Info代码的自动匹配。
其他的还有诸如mutualTLS字段和requestBody字段的加入,openAPI在github上的社区也做了较大更新,更方便开发者通过案例尽快的熟悉新的标准。


长按,识别二维码,加关注