正文
API是通过把程序内部的一些功能有限地向外开放来做到的,这使得应用之间可基于各自的利益分享数据,同时不需要开发者公布所有的软件代码。对开源项目来说也是如此。你可以把它看成是一扇门、窗或杠杆,不管用什么比喻,一个程序和外面的软件世界的沟通就是由API定义的。
API的魅力在哪里呢?与编程范式比起来,API在不断酝酿新的商业模式。API不仅会把所有东西进行技术整合,还会把相应的商业利益或多或少的联系到一起。当开发者开始调用公司API的时候,他们就会成为公司的一个合作伙伴,而用户有可能会发展成为他们的潜在顾客。
随着API的蓬勃发展,如何维持高质量的API也逐渐成为众多公司所关注的问题。如何保证API的质量呢?最好就是要确保API提供了卓越的用户体验,并与合作伙伴达成合作协议,进而完成业务目标。为了确保IT生态系统的健康和繁荣,开发一个API需要一个郑重的承诺,因为它需要长期的维护管理,维持高质量。
接下来,我们看看Twitter API和Slack API的两种生态,希望从这两种生态中得到一些宝贵经验。
Twitter API与其失调的生态系统
在Twitter的API所有变更中,饱受争议的是,Twitter限制第三方客户端App所能拥有用户的数目,以确保这些客户端App(大部分复制了Twitter的核心体验)不能变得足够大,从而失去竞争力。在此之前,Twitter的API提供了大部分不受限制的访问,但没有应用策略。
早期Twitter极端繁忙,仅仅是为了保持服务正常运行——还记得那头失败的鲸鱼吗?(InfoQ注:Twitter宕机的页面是一头失败的鲸鱼图像。)当API发布时,唯一的第一方Twitter客户端是网站。这个API,令人难以置信地充斥了当时的主流移动平台(iOS、Android、Blackberry)上的第三方客户端。
在初期时,涌现了许多第三方富有特色的App,如Tweetbot、Twittelator、Twitterific、UberTwitter、Seesmic、Brizzly、Falcon等,那个时候多么迷人啊。
目前,这个API已经有600,000个开发人员注册了900,000个应用程序,每天疯狂地处理130亿个请求。“Twitterverse”是大规模的。在最近的记忆里,这无疑是最让人激动的API之一。
然而,Twitter越来越多深刻地意识到,他们最具扩充性的商业模式是广告,Twitter与用户之间的UI变得至关重要,这一点,在Twitter购买Tweetie(iOS客户端)时显得特别明显,此刻,这个新的第一方App突然变得与服务本身无法区分。