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

转载 2015年11月18日 15:10:51

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是非常普遍的,它加速了创新的步伐,它让每一个新的开发者在不重新“发明轮子”下就可以创建功能。

API的商业模式
正如推断的那样,API经常被公司用来获取利益。图3显示了四个通用的API商业模式,公司通过这些模式让API向业务目标迈进了一步。图中所标注的“Developer”在这里特指利用API的软件件开发人员。

一个API就是一个承诺
目前API存在的主要问题是它们不一定是永久性的。因为,今天一个公司提供一个API并不能意味着你明天还能够使用。例如,Twitter在2012年底限制了第三方访问其API,而这样做的后果是所有涉及该API的客户端全部遇难,这也迫使用户不得不使用Twitter官方应用和网站,用户也不得不忍受Twitter随心所欲向用户显示的广告。或许它会借口称这么做是为了更具凝聚力的用户体验,但是对于许多依赖Twitter API的开发者来说,这意味着,他们这部分业务的终结。
类似的例子是常见的,那些提供API的初创公司常有遭遇关闭或收购的命运。由于Web API仍处于初级阶段,还有很多东西要学,所以API提供者应该清楚这样一件事:一个API就是一个承诺,一旦其他人很依赖它,那么维持它并保持活跃就显得至关重要了。
最后
幸运的是,在大多数情况下,API是鼓励创新的。没有API,应用之间的通信将会被扼杀;软件开发者将不断重写并执行相同功能的软件;创新的脚步将会放缓。人们日常的分享、评论等将荡然无存。所以我们离不开API,随着世界越来越深入到技术革命,API将在我们每天使用的应用和网站中扮演更大的角色。

浏览器的工作原理:新式网络浏览器幕后揭秘

[http://www.w3ctech.com/topic/48] 浏览器的工作原理:新式网络浏览器幕后揭秘 前端工程  裕波 2014-07-07 7230 访问  5 ...
  • guojin08
  • guojin08
  • 2016年06月21日 16:42
  • 1825

互联网在线地图平台对比分析

(此文是在拿政府内部一个地图平台与其它在线地图平台对比情况下写的,目的是改进此地图平台,关于此地图平台的内容以删除,其它内容难免有错误或不足之处,欢迎批评指正) 一、互联网在线地图发展现状      ...
  • woaiwan619
  • woaiwan619
  • 2013年12月12日 13:22
  • 5808

一线互联网公司的前端开发流程

看标题也许会误会我是一线互联网公司的员工,先声明,我不是,那么有人就会问了,那你来装什么b呢,好吧,我虽不是大公司的,但是要有进大公司的决心嘛,所以多向人家学习,马大哥不是说了么:梦想总还是有的,万一...
  • JsonChen007
  • JsonChen007
  • 2016年07月15日 09:04
  • 1394

浏览器的工作原理:新式网络浏览器幕后揭秘.

  • 2016年05月22日 09:41
  • 621KB
  • 下载

浏览器的工作原理:现代网络浏览器幕后揭秘

  • 2012年11月20日 13:23
  • 1.44MB
  • 下载

http协议、Web架构, RESTFUL API及互联网应用的工作原理

http协议 该Restful API的设计特点, 主要由以下几方面来描述.   1). URL的设计 1 http[s]://{server}/rest/2.0/{pro...
  • sjiammm
  • sjiammm
  • 2017年08月01日 09:27
  • 289

HTML5如何成为改变移动互联网幕后的推手?

2012年,说HTML5集千宠万爱于一身也毫不夸张,IE、Chrome、Firefox和Opera等巨鳄都纷纷隔空飞吻,向她示爱了。        乔布斯的苹果重新定义了移动互联网,...
  • html5cn_org
  • html5cn_org
  • 2012年09月17日 14:22
  • 295

中企动力18年:企业互联网化幕后推手涅槃

我国中小企业多年来一直扮演着举足轻重的角色。4000多万家中小企业创造了全国六成GDP,近五成税收,以及提供了80%以上的城镇就业岗位。但中小企业也同时存在出生率、死亡率双高的问题。据普华永道会计师事...
  • sinat_37783592
  • sinat_37783592
  • 2017年06月07日 16:56
  • 355

前端文摘:深入解析浏览器的幕后工作原理

这是一篇全面介绍 Webkit 和 Gecko 内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见资源),并花了很多...
  • u012207345
  • u012207345
  • 2017年12月27日 17:00
  • 11

作为前端你不得不知-浏览器的工作原理:网络浏览器幕后揭秘

序言这是一篇全面介绍 WebKit 和 Gecko 内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见资源),并花了...
  • xllily_11
  • xllily_11
  • 2017年01月14日 12:29
  • 3670
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:API:互联网是如何在幕后工作的?
举报原因:
原因补充:

(最多只允许输入30个字)