什么是 API [优先]?
不久前,我在全国政府网站专业人士协会发表演讲。在同一次会议上,Mark Headd 也在发表演讲。我们都在谈论不同的开放数据主题。我的讨论是关于开放政府和开放数据之间的区别,而 他的演讲 是关于 API [优先]。
幸运的是,他们把我们的演讲安排在了不同的时间,所以我才有机会听他谈论使用开放数据进行网站开发的 API [优先] 策略。他的副标题是“开放数据是构建更好网站的基础”。
API [优先] 本质上是设备无关的设计。Mark 提出的前提是,网站通常在部署后才改造 API(应用程序编程接口)。API 可能是也可能不是为了响应那些试图从网站获取数据的人的抓取行为而设计的。我喜欢这次演讲,我也理解了为什么在考虑网站之前先考虑 API 是有道理的。
本文讨论了未来可能会发生什么。今天的开放数据仍然遵循 Gartner 20 年前对万维网的“炒作周期”。我们将看到,机器比人类更需要也应该消耗更多数据。这是一个关于数据如何使用的假设,基于轶事和调查证据。在没有更多数据的情况下,我无法证明任何结论性的东西,但我可以假设以下几点:
- 人类消耗的数据的重用价值较低,因为它没有被重新分发
- 与 API [优先] 平台相比,在 Web/移动 [优先] 平台上提供的数据需要更多的工作才能重用数据
- 来自媒体、技术和学术界的超级用户绝大多数时间都在浏览罗利开放数据门户
- 数据门户元素固有的用户体验问题使其难以使用
数据门户不仅仅是任何网站
我想更进一步探讨这个问题。在线数据应该 API [优先],数据门户需要被更实用、更少烦人的东西取代。11 月,我完成了一项关于 罗利开放数据 的调查,收到了公众的 100 多份回复。公众对可用数据的类型、更新频率和质量表示赞赏,但他们一致不喜欢界面。大多数关于界面的评论都与延迟有关,有时也与显示不兼容有关。
我完全同意他们的结论。数据和改造后的 API 很棒,但它们被锁在一个几乎无法使用的笼子里。如果平台是围绕 API 而不是 Web [优先] 策略构建的会怎样?我们可能会发现,为了适应当前和未来的设备,罗利市方面可以减少工作量,开发者可以修改数据和与之相关的探索小部件。
图 1:2014 年 10 月加载的行数
如果我们看看数据网站的实际使用情况,而不是它们的营销方式,我们就会开始看到一些模式。罗利开放数据在过去 18 个月中获得了 1,115,125 次人类页面浏览量,其中大部分发生在过去六个月中。在 2014 年 10 月,我们的 API 调用量达到了 17,000,000 次的峰值。在一个月内,机器的浏览量是人类的 17 倍。
正如您从图中看到的那样,9 月和 11 月的数据与 10 月相差不远。一些读者可能想知道为什么从 2014 年 5 月开始 API 调用量激增。5 月至 10 月期间,我们一直在 Red Hat JBOSS Switch Yard 上构建开源服务架构,该架构可以挖掘和自动附加罗利开放数据门户内的数据集。
罗利开放数据使用响应式 Web 设计,对大多数手持设备都很友好,但 API 需要一些帮助才能将数据推送到门户中。门户本身将每个数据集都发布为 API 端点。这个 API 是只读 API。编写一些代码,我们可以让 Socrata 门户允许我们附加数据集。Socrata 并非 Web/移动 [优先] 类别中的唯一平台。ESRI、CKAN 以及在某种程度上,Junar 的架构原理也相同。这不是对任何特定平台的直接批评或认可。
出错的后果
在看到最近一些门户网站启动的轶事问题之前,讨论多节点方法和倡导 API [优先] 策略似乎是深奥的。明尼阿波利斯最近启动了其开放数据门户,却受到了 严厉批评。大多数批评都集中在网站的性能、延迟、非响应式设计和崩溃的网页上。请注意,这些都是公民试图通过不同的浏览器使用门户网站的投诉。该市指责 ESRI,但延迟和设计不良、无法验证的页面并非平台固有的问题。ESRI 不是 API [优先] 产品。该市表示他们应该选择 Socrata。鉴于该市管理推出的能力,似乎很明显,缺乏基于多节点标准的方案是导致 Beta 版失败的一个重要原因,但不是唯一原因。
CKAN 最近还通过 一条推文 宣布启动了一个关于埃博拉危机的新的综合开放数据门户。这不是响应式设计。当我在手机上查看时,我看到的是完整网站的微缩版本,除非我切换到更大的界面,否则无法有意义地使用或重用数据。现在让我们想想这样做的后果:
- 数据是为谁准备的?如果是为实地工作人员准备的,那这是一个巨大的失败。最常见的实地设备是平板电脑和手机。如果没有某种应用程序使用 API,这将成为数据重用的障碍。
- 我如何使用和重用数据?沿着链接的兔子洞,我可以找到关于危机数据的地理数据。大多数目录列表都是 CSV 数据集以及提供数据背景信息的 PDF 文件。这样做的好处是我有元数据,坏处是我无法查询明显的 API 端点,将该站点的数据与我自己的分析的其他数据合并。
结论
这只是冰山一角。除了不使用 API [优先] 策略的技术问题之外,我们还有关于 PII(在明尼阿波利斯案例中)的政策问题和 CKAN 实例中的用户体验问题。因此,我通过比较人类和 API 消耗的数据得出以下结论:
- 人类消耗的数据的重用价值较低,因为它没有被重新分发
- 与 API [优先] 平台相比,在 Web/移动 [优先] 平台上提供的数据需要更多的工作才能重用数据
3 条评论