BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

APIs.json:用于发布和发现API的工具

| 作者 Abel Avram 关注 7 他的粉丝 ,译者 赵震一 关注 0 他的粉丝 发布于 2014年8月28日. 估计阅读时间: 5 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

APIs.json可以让网站将他们的API开放给搜索引擎,并且让API可被发现。

APIs.json是一种API的定义格式,这种格式的文件可以用于向外界传达某个网站所提供的API。该文件可以放在网站域名的根路径下,其中包含了一段关于API的机器可读的描述,以及一些指向其他同类文件的链接。APIs.json与robots.txt有些类似,robots.txt是一种被搜索引擎用来索引网站内容的文件,而APIs.json则被应用于API的发现和索引。

虽然APIs.json的版本目前还只是0.14,但它的作者们认为它已经“准备就绪”,并且“社区可以真正地基于它构建起来”。该格式定义了大量强制和可选的元素,我们来对其中一部分作一下简介:

  • Name [强制]: API集合的名称,是供人类可读的字符串文本。
  • Description [强制]:API集合的描述,是供人类可读的文本。
  • Created [强制]:当前文件的创建时间。
  • Apis (集合) [可选]:文件中收录的API列表,每一条都包含以下元素:

           Name [强制]: API的名称。
           Description [强制]: 供人类可读的关于API的描述。
           baseUrl:与API的根URL或主要端点(primary endpoint)相对应的Web URL。
           Version [可选]:用于表示本描述所引用API的版本号的字符串。
           properties (集合):
              - type:请查看保留关键字。
              - url 或值。

APIs.json是3Scale (Steve Willmott -@njyx和Nicolas Grenie -@picsoung) 和 API Evangelist (Kin Lane -@kinlane)合作的成果。InfoQ对Kin Lane进行了采访,从而对该项目的细节进行了进一步的了解。

InfoQ:你们打算将APIs.json这种格式提交给某个标准化组织吗?

KL: 未来有可能会将APIs.json提交给标准化组织。但是目前,我们还是在努力工作以获得更多关于这种格式的反馈。希望通过在1000个以上的网站进行部署来使它更加的成熟,然后我们会再考虑下一步的计划。

InfoQ:有没有已经使用了这种格式的网站?

KL:最早使用该格式的站点是apievangelist.com,上面拥有来自98个独立提供者所提交的138个API,但是其中很多都不是官方提供者所提交的。就是说它们大都是由第三方提交的。然而,该站点也有很多来自官方提供者的APIs.json,这些提供者包括Spotify、Diffbot、Paypal、MYOB和Neutrino API。

InfoQ:既然你认为目前“社区可以真正地基于它构建起来”,那么为什么当前APIs.json的版本仍然只有0.14。难道不应该是1.0版吗?

KL:我们从0.11版开始,根据反馈和经历的一些事情对它进行了快速地迭代开发,从而达到了0.14版。虽然它现在已经被广泛地使用起来,并且有数百个提供者认同了我们的工作,但将它视为1.0版目前看上去还不合适。我们已经花费了好几个月的时间来取得目前所拥有的成绩,但是我们仍然有很多的工作要做。

InfoQ:我了解到APIs.json已经支持了以下的一些API格式:Swagger、RAML、Blueprint、WADL以及WSDL。你们有计划在未来支持其他更多的格式吗?

KL: 我们从一开始就只专注于那些主流的API定义格式。然而,只要通过使用API properties,你便可以指定任意你所选择的API定义格式。这里面并没有什么限制,但是一旦我们发现某些特定的格式获得了主流的使用,我们将会把它们囊括进核心的规范

InfoQ:你们的短期计划和长远规划是怎样的?

KL:实现。实现。实现。我们正在向API提供者教授APIs.json,并帮助他们进行实现。我们将会专注于帮助人们理解在内部以及公共发现方面使用APIs.json所带来的好处。沿着这个方向,我们会持续地打造一些有意义的工具,比如开源搜索引擎APIs.io,它可以帮助人们看到APIs.json所带来的好处。

与APIs.json相伴而生的便是APIs.io,这是一个开源的搜索引擎,它通过爬取网站来对它发现的apis.json文件进行索引。该网站同样也包含了一系列用于注册新API的工具,并且为它们生成并验证apis.json文件。

整个APIs.json项目基于MIT许可证发布,目前已在GitHub上开源

查看英文原文:APIs.json: Publishing and Discovering APIs

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

看不到应用的场景 by 黄 国华

我觉得类似robot.txt这想法非常好,既简单,又方便,但是我的api不是公开的呢?还有如果我希望使用程序去检索我的api呢?有些发现服务的场景需要使用关键词来发现服务,而且是自动化的方式。
最让人不理解的是,他提供的搜索引擎是个站点,难道它仅提供人为的方式发现服务吗?这个用途似乎不会太大。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT