英国政府选用OpenAPI 3规范描述RESTful API

英国政府开放标准委员会在GitHub接受贡献者提案,将采用RFC 4180作为发布表格的标准,使得数据能够更加便于发布以及重新使用,而在RESTful API描述上,则采用OpenAPI 3的规范,增加API描述的一致性与准确度。

在2016年的时候,社群就曾经要求,使用第三版本的OpenAPI规范来描述RESTful API,但是当时普遍认为规范太新,没有足够的工具支持,也不知道是否会得到用户的支持而作罢,现在开放标准委员会在OpenAPI 3成熟后重新审查了这项提案,由于这项规范不适用于所有API,因此没有强制执行,仅建议各单位使用该规范。

OpenAPI 3之所以重要,GDS提到,无论以什么程序语言开发的API,OpenAPI 3都能帮助用户产生准确最新的API参照文件,且能够验证、版本化、维护和更新所产生的文件,而文件中使用相同的API描述,也能减少其他用户理解API的时间,进而在政府中提升API的采用率。

由于OpenAPI 3本来就是描述RESTful API最常见的方法,而且支持OpenAPI 3的工具持续发展,在2016年担心的缺点都已经不存在,因此开放标准委员会现在决定采用OpenAPI 3,以鼓励API团队产生机器可读且和语言格式无关的定义文件,让开发人员无论熟悉哪一种开发语言,都能轻易地理解API的功能。

社群在GitHub上提出的另一个议题(Issue),则是要求开放标准委员为CSV制定标准格式。RFC 4180是CSV文件标准格式的简单文件描述,CSV(Comma Separated Value)格式以纯文本的形式存储表帧数据,包括数字和文本,整个文件以任意数量的纪录组成,纪录之间以换行符号分隔,每笔纪录则由字段组成,字段之间通常以逗号作为分隔符号,是软件之间常用来交换数据的格式。

负责英国政府进行数字转型的机构GDS(Government Digital Service)提到,GOV.UK上的数据表格通常会以CSV与试算表格式一起发布,但是缺乏CSV标准将会为重用数据的人带来不少麻烦,因此社群便在英国政府的GitHub上发出议题,要求标准化CSV。

而经过广泛讨论之后,英国司法部架构师David Read和其他贡献者共同进一步发展了RFC 4180的配置文件,由于RFC把部分的标准留做可选用项目,因此这些贡献者在配置文件中,明确定义了英国政府标准的使用方式,包括字符编码必须使用UTF-8,以及数据中必须包含标题列等规则。标准的CSV文件可供任何工具直接使用,不需要进行预先编辑,而这将能让英国政府的开放数据更容易被使用,也节省数据分析师的时间。