新闻中心

API:互联网是如何在幕后工作的?

2015-2-6 10:07:17 浏览次数:1589 来源:csdn

摘要:API已经彻底的改变了我们使用网络和移动应用的方式,它实现了计算机程序之间的相互“交谈”。在过去的十年里,因为API,软件开发和创新从根本上得到了提高,即应用以新的方式整合与通信。

我们每天都通过使用笔记本和移动电话与朋友、家人以及同事沟通,那么程序之间是如何相互沟通的呢?

API是我们这个现实生活中隐藏的“骨干”——让软件程序互相通信。而今天“API经济”正在迅速的改变世界的交互方式,照片分享、网上购物……越来越多的事物都通过API进行碰撞。因为API,技术创新正以比以往更快的速度发生。如果你会编写软件,那么你或许已经熟悉API,但是其余的呢?API的精确意义是什么?为什么它如此重要?

API:软件的支柱

在最基本的层面上,一个API是一组决定一个程序如何与另一个通信的规则。在你使用PC的时候,API让数据在不同应用之间的传输成为可能,如从一个电子邮件中复制一个链接到Word文档中。

在Web上,你可以把API想象为一个电话系统:当一个应用想从另一个应用那里获取信息时,它会“调用”另一个应用的API。举个例子来说,如果你想建立一个应用为用户显现最近的、用户朋友最喜欢的餐厅,你可以使用Yelp API获取餐厅数据(Yelp是美国点评网站)以及 Facebook API获取用户朋友喜欢的数据。当用户打开应用时,应用的内部代码将调用Yelp和Facebook的API来获取所需的数据。

图1:用户访问一个网站,该网站调用Facebook API来获取数据

在Web API的世界里,诸如Facebook、Google Map、Foursquare等大的服务器允许较小的应用“捎带”它们的数据。例如,许多的应用允许用户使用Facebook登录,而这就是通过Facebook API触发的。

API以一种可控的方式向外界陈列一块软件内部数据和功能,允许一个应用共享数据以及“代表”其他应用的执行行为,而不需要开发者分享他们所有的代码。在这种规模上分享代码将降低效率,此外还会带来重大的安全威胁。API允许这种不分享实际代码的集成。包括开源软件在内,API都是有用处的,因为大多数开发者没有时间和耐心去为使用某一块功能而浏览成千上万行代码。相反,该功能只需通过一个API就可以被使用。

如果没有API,很难想象应用之间如何连通。API允许应用相互交谈,因此更具创新性和一致性的应用被创建。试想一下,如果Google Map没有提供一个API,那么在该互联网上相关的每一个移动应用和网站必须重新实施其地图系统,这是一个非常艰巨的任务。对于一个公司而言内部的API对增加公司共享资源也是非常有用的,例如一个维基百科的软件开发者可以创建一个API以支持所有终端用户(包括网站、iOS、Android和黑莓应用)使用的维基百科应用,以避免这些应用重复的复制代码,它们可以通过一个API共享数据。API通过限制外部访问特定子集(通常是数据交换的功能)简化了软件开发的复杂性。正因为如此,如今很多新的软件开发周期可以是几周,而不是以往的几个月或几年。

API为何如此重要?

在现代社会中,API是非常重要的,因为他们解释了开发者是如何构建一个可以“插入”大服务(如Twitter和Facebook这样的社交网络或像Dropbox、AccuWeather这样的公用事业)的应用。一个手机游戏,如FlappyBird,可以使用Dropbox让玩家在Dropbox云中存储他们的游戏和设置参数,而不需要其本身构建一个云存储系统;一个开发者可以搭载Uber API设计一个提供打车服务的地图应用。API可以在很大程度上节省开发者和用户的时间。用户这块怎么说呢?试想一下,如果Facebook不提供API的话,用户就必须为每个应用创建一个单独的用户名和密码,而不能简单的点击“通过Facebook登录”。

API实现了现代Web的良好体验。开发者可以挖掘和选取API创造全新的体验。从Google到Twitter再到Facebook……,开发者有数千个API选择。一个常见的API应用例子是“共享”图标,你可以在网站文章、视频等地方发现它的身影。当你点击这些分享链接的时候,意味着一个API在被调用。另一个常见的API应用是网站下面的评论系统,如果们所知道的Disqus,它允许用户无需网站所有者做任何额外操作的前提下发布和查看评论。说到这里,你可能已经注意到了,API是非常普遍的,它加速了创新的步伐,它让每一个新的开发者在不重新“发明轮子”下就可以创建功能。