AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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:582504
用户头像

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

关注

评论

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

Flutter中的http网络请求,kotlin程序

android 程序员 移动开发

腾讯云发布微搭生态开放计划,与合作伙伴携手共创产业未来

科技热闻

Flutter图片加载原理与缓存,安卓高级开发工程师面试题

android 程序员 移动开发

Flutter完整开发实战详解(三、 打包与填坑篇)_ 掘金技术征文

android 程序员 移动开发

Flutter集成高德定位和地图功能,精通android游戏开发pdf

android 程序员 移动开发

Flutter 插件使用必知必会,我的阿里春招之路分享

android 程序员 移动开发

Flutter 网络请求框架封装,android源码设计模式解析与实战

android 程序员 移动开发

腾讯云发布星星海智慧木系GA01,新一代基于AMD的企业级GPU卡“诞生”

科技热闻

Flutter实战(三)检验Flutter的跨平台能力,flutter菜鸟教程

android 程序员 移动开发

Flutter混合开发(二):iOS项目集成Flutter模块详细指南

android 程序员 移动开发

Flutter-可以缩放拖拽的图片(1),android最新开发语言

android 程序员 移动开发

「免费开源」基于Vue和Quasar的前端SPA项目crudapi零代码开发平台后台管理系统实战之之拖拽表单定制(十六)

crudapi

Vue 零代码 crudapi quasar 拖拽表单

Flutter-视频系列--图解-Android-原生集成-Flutter-Module

android 程序员 移动开发

Flutter图表库fl_chart的使用解析(二)-折线图,Android最牛教材

android 程序员 移动开发

Flutter-可以缩放拖拽的图片,安卓内存优化管理器

android 程序员 移动开发

Flutter这么火为什么不了解一下呢?(上,这份333页关于性能优化知识点的PDF你不能不看

android 程序员 移动开发

Flutter之全埋点思考与实现,跨平台app开发工具

android 程序员 移动开发

Fedora又一次哑了,又如何?

吴脑的键客

fedora

Flutter完整开发实战详解(四、 Redux、主题,某大厂开发者对于Android多线程的总结

android 程序员 移动开发

Flutter开发桌面应用-第一个windwos桌面应用,android游戏开发框架

android 程序员 移动开发

架构实战营毕业总结

蔸蔸

Flutter-实现-App-内更新安装包,让人茅塞顿开

android 程序员 移动开发

WorkPlus政企消息协作解决方案:一站式处理、安全可靠

BeeWorks

Flutter实战详解--高仿好奇心日报,kotlin核心编程

android 程序员 移动开发

Flutter版 WanAndroid App,深入解析Android-AutoLayout

android 程序员 移动开发

Flutter初学者之普通底部导航栏及自定义不规则底部导航栏的实现

android 程序员 移动开发

Flutter动画 3 - Animation动画组,android物联网开发李天祥

android 程序员 移动开发

Flutter如何和Native通信-Android视角,首发10万字Android开发实战文档

android 程序员 移动开发

Flutter学习之事件循环机制、数据库、网络请求,kotlin开源项目实战

android 程序员 移动开发

Redis 高可用篇:主从架构数据同步一致性原理

码哥字节

数据库 redis NoSQL 数据库 11月日更

Flutter嵌套深?扩展函数了解一下,面试字节跳动Android工程师该怎么准备

android 程序员 移动开发

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