暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【深度】OpenAPI 3.1介绍

达摩院首座 2021-07-26
1800

        上次我们说到了OpenAPI及常用的工具APIGEE,今天来讲讲OpenAPI版本的演进。

        OpenAPI的规格(OAS)是由Linux基金会制定的,目前的成员机构小到初创企业(如基于K8S的加速器企业Kubeshop)大到老牌500强(谷歌微软),都在参与协助制定和完善其标准(详细名单可参看https://www.openapis.org/membership/members)。

        在今年二月份的时候OAS升级到了3.1版本,加入了很多新的元素。对于工具开发厂商(即上述这些企业)提出了新的要求。自2017年OAS3.0版本推出之后,版本的迭代就开始趋稳,四年间几乎只有一些注释的增改。

        直至今年二月份,官方发布了OAS3.1版本,做出了以下重大更新:

  1. 与JSON格式的字段集融合

  2. 推出新的顶级元素,用于描述带外注册和管理的网勾(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上的社区也做了较大更新,更方便开发者通过案例尽快的熟悉新的标准。

达摩院首座∣关注开源技术



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

文章转载自达摩院首座,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论