关闭

2017年2月4日

打开存档,一次打开一个API(和一个FOSDEM)

今天我们打开我们的公共API,允许以编程方式浏览软件遗产归档.

当我们发布此消息时,罗伯托和斯特凡诺正在键入注释2017年FOSDEM,讨论软件遗产在保护自由软件公共资源。为了配合今天的演讲,我们发布了第一个公共API,它允许以连接的开发对象(例如blob、目录、提交、发布等)的图形的形式导航软件遗产存档的整个内容。

在过去的几个月里,我们一直忙于获取源代码(具有完整的开发历史)进入之内存档,以最大限度地降低如今公开可用的自由/开放源代码软件的重要部分因各种原因(如崩溃、黑帽黑客攻击、商业决策等)永远从网络上消失的风险。因此,我们的存档已经是现有最大的源代码集合之一,跨越了GitHub镜像注入Debian和GNU等重要的自由软件集合,并持续导入所有谷歌代码和Gitorious存储库。

然而,到目前为止,档案只保存了下来。公众无法访问其内容。虽然档案有很多价值就其本身而言,我们的任务是收集、保存和分享我们收集的所有材料和每个人一起。此外,我们完全明白,一个只存款的图书馆远没有一个商店和检索图书馆那么令人兴奋!今天,我们正朝着提供对存档内容的完全访问迈出重要的第一步:我们发布我们的公共API版本1,它允许导航Software Heritage存档以编程方式。

你可以看看API文档了解其工作原理的全部细节。但简单回顾一下:从概念上讲,我们的档案是一个巨大的Merkle DAG公司将爬网公共时遇到的所有与开发相关的对象连接在一起VCS公司存储库、源代码版本和GNU/Linux发行包。我们存储的对象示例有:文件内容、目录、提交、发布;以及它们的元数据,例如:日志消息、作者信息、权限位等。

我们今天打开的API允许逐点导航这个巨大的图表。使用API,您可以按ID查找单个对象、检索其元数据,以及从一个对象跳到另一个对象以下链接-例如,从提交到相应目录或父提交,从发布到带注释的提交等。此外,您可以检索爬网相关信息,例如我们跟踪的软件源(通常是VCS克隆/签出URL),以及我们对任何已知软件源进行的访问的完整列表例如,这允许我们了解何时拍摄您关心的Git存储库的快照,以及每次访问时,当时回购的每个分支都指向哪里.

我们提供API作为公共服务的资源仍然非常有限。这就是为什么您会遇到一些限制的原因。首先,还无法下载我们存储的文件的实际内容-您可以检索所有与内容相关的元数据(例如校验和、检测到的文件类型和语言等),但不能以字节序列的形式检索实际内容。其次,一些相当严格的利率限制适用;API访问完全是匿名的,用户通过其IP地址进行标识,每个«用户»每小时可以执行略多于100个请求。这是为了在容量增长的同时保持我们的基础架构健全,并将注意力集中在开发其他存档功能上。

如果您有兴趣解除特定用例或实验的速率限制,请联系我们我们将看看我们能做些什么来提供帮助。

如果你愿意的话有助于增加我们的资源库,看看我们的赞助计划!