开放数据门户应 [API 优先]

尚无读者喜欢这篇文章。
Government and library open data using Creative Commons tools

Opensource.com

什么是 [API 优先]?

不久前,我在全国政府网站专业人士协会发表演讲。在同一次会议上,马克·海德也在发表演讲。我们演讲的主题都是关于开放数据,但侧重点不同。我的讨论是关于开放政府和开放数据之间的区别,而 他的演讲 是关于 [API 优先]。

幸运的是,我们的演讲安排在不同的时间,所以我有机会听他讲解关于使用开放数据进行网站开发的 [API 优先] 策略。他的副标题是“开放数据是构建更好网站的基础”。

[API 优先] 本质上是设备无关的设计。马克提出的前提是,网站通常在部署后才对 API(应用程序编程接口)进行改造。API 可能是也可能不是为了响应那些从网站上抓取数据的人的需求而设计的。我很喜欢这次演讲,我也理解了为什么先考虑 API 再考虑网站是有道理的。

本文讨论的是未来可能发生的事情。今天的开放数据仍然遵循 Gartner 咨询公司的“炒作周期”,就像 20 年前的万维网一样。我们将看到机器比人类更多地并且应该更多地消费数据。这是一个关于数据如何使用的假设,基于轶事和调查证据。在没有更多数据的情况下,我无法证明任何结论性的东西,但我可以假设以下几点:

  • 人类消费的数据重用价值较低,因为它没有被重新分发
  • 在 Web/移动 [优先] 平台上提供的数据比在 [API 优先] 平台上提供的数据需要更多的工作才能重用数据
  • 来自媒体、技术和学术界的资深用户绝大多数时间都花在浏览罗利开放数据门户网站上
  • 数据门户网站元素固有的用户体验问题使其难以使用

数据门户网站不仅仅是任何网站

我想更深入地探讨一下这个问题。在线数据应该 [API 优先],数据门户网站需要被更实用、更少令人讨厌的东西所取代。11 月,我完成了一项关于 罗利开放数据门户网站 的调查,收到了公众 100 多份回复。公众对数据的类型、更新频率和质量表示赞赏,但他们一致不喜欢界面。大多数关于界面的评论都是关于延迟,有时是显示不兼容。

我完全同意他们的结论。数据和改造后的 API 非常棒,但它们被锁在一个几乎无法使用的笼子里。如果平台是围绕 API 而不是 Web [优先] 策略构建的会怎么样?我们可能会发现,为了适应当前和未来的设备,罗利市可以减少工作量,开发人员可以修改数据和随之而来的探索小部件。

Figure 1: October 2014 Rows Loaded

图 1:2014 年 10 月加载的行数

如果我们看看数据网站的实际使用情况,而不是它们的营销方式,我们就会开始看到一些模式。罗利开放数据门户网站在过去 18 个月中获得了 1,115,125 次人类页面浏览量,其中大部分发生在过去六个月中。在 2014 年 10 月,我们的 API 调用量达到 17,000,000 次的峰值。在一个月内,机器的浏览量是人类的 17 倍。

正如你从图中看到的那样,9 月和 11 月的数据与 10 月相差不远。一些读者可能想知道为什么 API 调用量从 2014 年 5 月开始激增。5 月到 10 月期间,我们一直在 Red Hat JBOSS Switch Yard 上构建开源服务架构,该架构可以挖掘并自动附加罗利开放数据门户网站内的数据集。

罗利开放数据门户网站使用响应式 Web 设计,对大多数手持设备友好,但 API 需要一些帮助才能将数据推送到门户网站中。门户网站本身将每个数据集都作为 API 端点发布。这个 API 是一个只读 API。编写一些代码,我们可以让 Socrata 门户网站允许我们附加数据集。Socrata 并不是 Web/移动 [优先] 类别中的唯一平台。ESRICKAN 以及在某种程度上,Junar 都是基于相同的原则架构的。这不是对任何特定平台的直接批评或认可。

犯错的后果

在看到最近一些门户网站发布时出现的轶事问题之前,讨论多节点方法和提倡 [API 优先] 策略似乎是深奥的。明尼阿波利斯最近发布了其开放数据门户网站,却受到了 尖锐的批评。大多数批评都集中在网站的性能、延迟、非响应式设计和崩溃的网页上。请注意,这些都是公民尝试通过不同的浏览器使用门户网站时的抱怨。该市指责 ESRI,但延迟和设计糟糕且未通过验证的页面并非平台固有的问题。ESRI 不是一个 [API 优先] 产品。该市表示,他们应该选择 Socrata。考虑到该市管理发布的能力,似乎很明显,缺乏基于多节点标准的做法是导致 Beta 版本失败的一个重要但并非唯一的原因。

CKAN 最近也宣布通过 一条推文 发布了一个关于埃博拉危机的新的、全面的开放数据门户网站。这不是响应式设计。当我在我的手机上查看时,我看到的是完整网站的微型版本,除非我切换到更大的界面,否则我无法有意义地消费或重用数据。现在让我们想想这样做的后果:

  • 数据是为谁准备的?如果是为外勤人员准备的,这是一个巨大的失败。最常见的外勤设备是平板电脑和手机。没有某种应用程序来消费 API 将会成为数据重用的障碍。
  • 我如何消费和重用数据?沿着链接的兔子洞,我可以找到关于危机数据的地理数据。大多数目录列表都是 CSV 数据集以及提供数据上下文的 PDF 文件。这样做的好处是我有元数据,坏处是我无法查询明显的 API 端点,将该站点的数据与我的分析的其他数据合并。

结论

这只是冰山一角。除了不使用 [API 优先] 策略的技术问题外,我们还有关于 PII(在明尼阿波利斯案例中)的政策问题和 CKAN 实例中的用户体验问题。因此,我通过比较人类和 API 消费的数据得出以下结论:

  • 人类消费的数据重用价值较低,因为它没有被重新分发
  • 在 Web/移动 [优先] 平台上提供的数据比在 [API 优先] 平台上提供的数据需要更多的工作才能重用数据
Jason Hare
二十年分析用户与 Web 应用程序交互行为的经验。经验包括使用快速原型设计和迭代项目管理风格开发用户界面,以创建屡获殊荣的以用户为中心的信息门户。主要兴趣包括大数据和开放数据应用以及公共部门环境中的社区参与。

3 条评论

嗨,Jason,

的确,我完全同意。API 是促进基于数据的创新的关键要素。

在 OpenDataSoft (http://www.opendatasoft.com),我们正在构建和运营一个基于云的数据管理平台。这个平台是“API 优先”构建的。这意味着可以从门户网站访问的任何功能也可以作为 API 调用使用。实际上,门户网站本身就是 API 的第一个消费者。可用的 API 包括(详见 http://docs.opendatasoft.com/collection/1382-using-apis):
- 数据集目录 API(目录中数据集的关键字和分面搜索)。
- 数据集 API(在数据集记录中搜索、地理数据集记录的地理聚类、数据集记录的数值聚合)。

因此,你不仅可以通过 API 调用从门户网站获取原始数据,还可以访问高级功能,例如地理聚类和分析,以直接为任何类型的设备上的高级应用提供支持。这使得应用程序开发人员可以非常轻松地快速构建第一个 MVP,而无需构建任何后端。

虽然 API 是开放数据门户网站的关键功能,但人们不能忘记一个主要的警告:潜在的互操作性不足。虽然一些高级功能仍然可以通过非标准化的专有 API 提供,但对于数据平台来说,最大程度地支持标准确实至关重要。在消息格式(JSON、GeoJSON、RSS、RDF...)、协议(REST、OData...)和安全框架(OpenId、OAuth、SAML...)方面。支持标准是让开发人员社区渴望使用数据门户网站 API 的唯一途径。

“API 优先”开发的另一个良好特性是,它鼓励开发基于这些 API 的可重用框架。实际上,开放数据门户网站不应仅仅针对经验丰富的开发人员。它还应该让任何公民都有可能简单地重用 Web 组件,构建他们自己的仪表板和数据可视化。
- 这就是为什么使用 OpenDataSoft 平台构建的任何标准数据可视化都可以轻松嵌入到第三方 Web 应用程序中 (http://public.opendatasoft.com/explore/dataset/chicago_incidents_2001_p…)。
- 这也是为什么我们最近以开源库的形式发布了一组可重用的 HTML 小部件,可以轻松组装这些小部件来构建数据仪表板 (http://opendatasoft.github.io/ods-widgets/docs/#/api/ods-widgets.direct…)。

因此,如果我可以将此总结为几个陈述:
- [API 优先] 开发应该是强制性的。
- 开发和支持标准将变得越来越重要。
- 提供工具和框架以方便重用在开放数据门户网站上公开的数据集也是开放数据政策成功的关键因素。

很棒的文章,Jason。我认为你对开放数据 API 在最有用场景(例如在移动设备和平板电脑上)中实现开放数据重用的强大功能看法非常正确。我想补充一点,API 不仅允许设备灵活性,还允许开发人员构建针对特定面向公民的问题量身定制的用户体验。

数据门户网站是不够的。我们需要开发人员和企业家重用开放数据来构建应用程序和工具,将数据带到对公民具有可操作性的地方:以情境感知的方式进入他们的移动设备、进入他们的汽车以及进入他们的日常工作流程。存在于数据目录中的数据是不够的 - 它需要被带到公民实际需要它的地方。这就是开放数据将改变、改进,甚至有望拯救生命的方式。

但是,我想为你的论点补充一点。虽然我完全同意“API 优先”策略,但我们不应止步于此。我坚信,至少在开放数据的情况下,仅通过 API 提供访问是不够的。API 通常提供门控的、用例驱动的体验,而批量开放数据对于研究人员和分析师来说更有用。此外,无论我们是否喜欢,API 都会更改或消失,我们依赖于 API 的所有者来提供对其中包含数据的持续访问。我们对开放数据和透明度的责任应包括使创建这些数据集的存档副本成为可能(只要许可证允许)。这就是 Socrata 不仅致力于提供出色的 API 来访问开放数据 (http://dev.socrata.com),而且还允许通过可下载的数据集快照进行批量访问的原因。

实际上,去年 12 月我在巴黎 API Days 上就这个话题做了一个有趣的演讲 (http://www.apidays.io/)。如果你愿意,可以翻阅我的幻灯片,我认为录音可能很快就会发布:https://socrata.github.io/presentations/conferences/2014-12-03-open-dat…

嗨,Chris

感谢你的链接和评论。我认为我们在这里取得了一些进展。[API 优先],但不仅仅是 [API 唯一]。虽然我认为机器对机器的数据重用具有更高的投资回报率(它肯定扩展得更快),但人类和人类可读的数据可视化也很重要。对于公共部门活动的披露(例如公共安全和公共财政)尤其如此。

你愿意和我一起撰写另一篇关于多节点数据发布的文章吗?如果你愿意,我很乐意。

最好的问候

Jason

回复 作者 Chris Metcalf

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.