曾看到一句话:“浏览器的API和文档对象模型(DOM)相当糟糕”。文档对象模型DOM,是一种数据结构,经常也被称作DOM树,它包含了庞杂的层次结构,也提供了繁杂的API。想必是它们的复杂、组织不合理让人们发出上面的吐槽吧。 那么,什么是API,它又能做些什么?
先讲个故事:W世界有很多仓库,仓库中蕴藏着丰富的资源,其中abc仓库储存着各类维生素。某A在进行一项研究,需要一些维生素。他完全可以自己从食材中提取维生素,当然也可以调用abc仓库中的资源。考虑到自己提取维生素费时费力,而且abc仓库可以限时免费提供,于是A决定直接采用abc仓库中的某类维生素。他找到abc仓库的负责人C,向他提出申请,很快便获得许可。剩下的就好办了:A只需根据abc仓库的官方规定,到指定的窗口获取自己需要的维生素。假设他通过研究官方规定,得知自己需要的维生素可以通过调用接口Abc.wd2.VD.1002("p1",{a:"",b:"",c:""})
获取。当然,他本人也需要提供一些数据:用途以及对维生素的配置信息。
语义分析
仓库:对象,比如google.maps,数据和功能的集合;
A:对象,使用方,赋值表达式的左方;
某类维生素:某类特定数据;
Abc.wd2.VD.1002("p1",{a:"",b:"",c:""})
:API,接口
使用API的好处,在于不需要搞明白别人家的仓库怎么建造的,只需要依照官方规定,选择合适的接口,就能方便地使用别人仓库中的资源,从而实现自己的目标。
以下内容翻译自:《What are APIs are and why they’re important》
API并不是多么新鲜的事物,不管你是在用笔记本还是台式电脑,API保证你能在两个软件之间进行信息的转移,保证同一软件在不同操作系统上的运行。
而在互联网中,API使得一些大型互联网服务例如Goolge Maps或Facebook能够允许第三方软件使用它们提供的数据资源。例如大众点评(作者用的yelp,笔者替换成中国的大众点评,它们是同种类型的互联网应用),能够在自己APP的图吧地图(图吧地图提供API)上显示想要找的餐厅以及附近的信息、交通路线等。
API通过一定的限制向外部环境暴露某项目的一些内部功能。从而工程师之间不必分享所有的软件代码就能相互之间分享数据,实现某些功能。这种程度的代码共享并不会对想保持代码闭源的开发者造成影响。
在开源项目中使用API同样有好处。谁会帮另外一个人整理他某个应用的所有代码,只为了使用一个功能?而且,在这种情况下一不小心就有可能陷入版权的泥淖。
API简化了上述所有问题,它可以通过规定一套方法对应一类数据来限制外部项目对其内部数据的访问。你可以把API看做是门、窗户,随你怎么喜欢。不管比作什么,API都清晰地传达出一个项目是如何与外部软件世界产生联系的。利用API,可以节约时间、资源,以及避免潜在的法律纠纷等。
现如今API越来越重要,因为它们关系到开发者在大型Web服务基础之上开发应用的可能性,比如使用谷歌地图或者云盘等。此外,API的使用大大节约了时间,也给APP的使用者带来了便利。比如Facebook用户可以用他们的账户登录很多第三方应用或者网站的个人中心,这就是使用了Faceook提供的API的好处。
但是,API也导致了Web应用大杂烩的发展,是指那些完全利用API混搭出来的Web应用。不管怎么说,API的广泛应用促使现代Web应用的不断更新发展。
当你登上大众点评查询附近的餐厅,它就会把你想要找的餐厅在图吧地图上标记出来。通过图吧地图API,大众点评把用户搜索餐厅的地址连同餐厅大众点评等级等信息传递给图吧内部的功能模块。该模块经过一系列的操作后便在地图的适当位置上返回一个Map对象,之后大众点评就可以把它展示在自己的应用中,最后就是用户在地图上看到的相关检索结果了。
API基本就是这样。你可能会在网页上看到过分享到@@@、@@@等的按钮,这些其实就是调用了@@@、@@@等的API,不用离开本网站就能把该网站上的文章分享到别的应用上去。(换个角度看,在这个过程,也就相应减少了对@@@、@@@等的访问)另外,网站还可以使用评论应用API,例如国外有名的Disqus,允许用户输入评论并显示出来。(译者补充:这的确省了网站开发者很多的时间和精力,你只需要简单几步,就能开通访客浏览和评论的功能,而且不需要你去维护,只需会用即可。)
API也不总是光彩照人,它也有弊端。比如,一年前Twitter开始限制第三方应用对其API的使用,该举措直接导致Twitter代理的举步维艰。但促使用户使用Twitter官方网站和APP,有助于广告营销和微博的提升。这样一来,就能提成用户的一致性体验。
弊端不止这些。如果大型Web服务方关闭了一些API,那么那些依赖于这些API的应用就会受到很大程度的影响。
尽管存在上述的问题,但是开发人员对API的热情丝毫没有受到影响,他们利用API开发出来的APP的用户也没有受到什么影响。
网友评论