写点什么

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

  • 2014-08-27
  • 本文字数:1596 字

    阅读完需:约 5 分钟

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

2014-08-27 03:582682
用户头像

发布了 52 篇内容, 共 25.3 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

HarmonyOS使用多线程并发能力开发

HarmonyOS开发者

HarmonyOS

Generative AI 新世界 | 扩散模型原理的代码实践之采样篇

亚马逊云科技 (Amazon Web Services)

机器学习 #人工智能 生成式人工智能 Amazon SageMaker 大语言模型

WorkPlus Meet 视频会议,自主可控,支持私有化部署

BeeWorks

火山引擎边缘云:数智化项目管理助力下的业务增长引擎

火山引擎边缘云

数字化 飞书 数智化 #项目管理

腾讯Java后端社招三面,差点就挂了!

程序员小毕

Java 程序员 面试 程序人生 架构师

ICCV 2023|小红书 4 篇入选论文亮点解读,「开集视频目标分割」获得 Oral

小红书技术REDtech

算法 ICCV

TinyEngine 低代码引擎到底是什么?

英勇无比的消炎药

开源 前端 低代码

Python 中的数字类型与转换技巧

小万哥

Python 程序员 软件 后端 开发

跨网传输文件时,如何通过日志记录来审计追溯?

镭速

跨网文件传输

Java训练营毕业总结

jjn0703

为什么要使用zookeeper

Jerry Tse

zookeeper 分布式锁 分布式系统 共识算法 数据强一致性

close()关闭文件方法

芯动大师

Github上线即遭狂转!上百人通过这份算法手抄本成功上岸字节

程序员万金游

#java java 架构 #算法 #数据结构 #java编程

Redis内存碎片:深度解析与优化策略

Java随想录

Java redis

IoTDB 在国际数据库性能测试排行榜中位居第一?测试环境复现与流程详解第一弹!

Apache IoTDB

上新啦!腾讯云云原生数据湖产品DLC 2.2.5版本发布,来看特性详解

腾讯云大数据

数据湖

WorkPlus私有化部署IM即时通讯平台,构建高效安全的局域网办公环境

BeeWorks

rabbitMQ到底是个啥东西?

程序员万金游

Java 开发 #java Rabbit MQ

华为智慧屏,吹尽狂沙始到金

脑极体

AI智慧屏

用友系列之 YonBuilder 低代码平台概论和基本使用

YonBuilder低代码开发平台

低代码 可视化

华为云耀云服务器L实例:带你探索轻量应用服务器的魅力

YG科技

企业内部通讯,WorkPlus助您打造高效沟通平台

BeeWorks

华为阅读“鲁迅专栏”已上线,读国内名家作品就上华为阅读

最新动态

使用Optional优雅避免空指针异常

Java随想录

Java 异常

Redis类型(Type)与编码(Encoding)

Java随想录

redis

福利贴|这是一个程序员不看一定会后悔的问题

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

大道总是孤独的——查理芒格如是说

少油少糖八分饱

投资 长期主义 能力圈 查理芒格 股东大会

彻底告别传统FTP,新的替代FTP产品比你想象的好的多

镭速

传输协议 FTP传输替代方案

活动预告 | 中国数据库联盟(ACDU)中国行第三站定档成都,邀您探讨数据库前沿技术

墨天轮

MySQL 数据库 oracle postgresql zabbix

轻量应用服务器,助力个人开发者最低成本创业

YG科技

从技术创新到应用实践,百度智能云发起大模型平台应用开发挑战赛!

不叫猫先生

百度智能云 千帆大模型平台

APIs.json:用于发布和发现API的工具_架构_Abel Avram_InfoQ精选文章