WEB 之API端口
一、什么是API端口 API:Application Program Interface
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
给大家举个例子吧,就好比如说你在餐馆点餐
到了饭店,喊一场服务员,点餐。
服务员拿出来菜单给你看,你点什么,她在小本本上记什么。
点好了之后,再把菜单送到后厨去。
这里服务员就是提供服务的(不然也不叫服务员),提供什么服务呢?
点餐服务。
点餐服务需要什么呢?
谈一个服务,通常就是要谈输入是什么,输出又是什么。
从眼下这个例子来看,输入就是一道道菜品的名字(或者是ID,不知道你们见过菜品上面有编号,服务员只记编号的?),输出的结果就是端过来的一道道菜。
有了输入和输出,服务员就可以提供了点餐的功能,这就是API,顾客就是调用者,服务员就是服务的提供者。
那么什么是SDK呢?
当美国人不会说中文的时候,饭店里的大堂经理来了,他来给美国佬当翻译。这就是SDK,SDK一般都是和语言相关,是官方提供的各种不同语言的实现版本。
二、API发展API 概念的出现,远远早于个人计算机的诞生,更不用说网络的诞生了。在公用数据处理的早期,为了一个应用能够与其它系统交互,开发者便已开始设计可公开访问并描述清晰的“接入点”。早在那时,这种做法作为一种准则,已是软件开发的主流理念。 但是,直到分布式系统的出现,乃至网络的降临,这些基础概念才淋漓的发挥出其重要性和惊人功效。
当我们回顾 API 的历史,会发现其中有一个阶段非常重要。 那是2000年左右,SOA(面向服务的架构)正在发展之中。API 的一种形式在企业应用中诞生。作为 SOA 伟大实践的一种,这种形式的 API 走出了企业应用的领域,在创新科技的世界里找到了更肥沃的土壤。
到了今天,我们能从技术角度,找出无数原因来解释为何 web API 能够在各种类型、不同大小的企业中获得成功,甚至也广受政府机构的欢迎。 但实际上,技术并非一切。web API 的成功,还要归功于很多其它方面的因素。这些因素大多并不那么抢眼,所以需要我们认真的研究历史,经过仔细观察才会发现为何那些 web API 的开拓者能够成功。
时至今日,我们还是要去学习过去十几年里的最佳实践。在对那些成功提供 API 的开拓者,包括 Amazon,Salesforce, Ebay,Twitter进行研究时,我们不能忽略任何重要细节。要知道,它们提供的 API 大部分还在运行着。
SalesForce
2000 年 12 月 7 日, 在 IDG 2000 Demo 大会上,SalesForce.com 正式发布。
在 web API 领域,SalesForce.com不仅是抢跑第一,直到今天,依然是领者。SalesForce.com在实时 API, 测试及部署上,还是保持领先位置。最近又在移动应用开发和后端即服务(BaaS)方面,开了先河。
Ebay
2000 年 12 月 20 日,eBay 发布了 eBay Application Program Interface (API),同时还发布了 eBay 开发者计划。
eBay API 的目的是为了标准化集成。也为了让合作伙伴和开发者,在围绕 eBay 生态圈开发业务时,更加容易。
eBay 是 web API 和 web 服务的先驱。今天,依然运营着最成功的开发者生态环境。
del.icio.us
del.icio.us 是一个社交型的书签服务,用以保存、共享和查找 web 书签。Jousha Schachter 在 2003 年创建了这个网站。
Flickr
2004 年 12 月,Flickr 发布。这是一款非常流行的图片分享应用。 六个月后,Flickr 发布了它们的 API服务。再过六个月,Flickr 被 Yahoo 并购。
2006年8月15日, Facebook 发布其开发平台和 API时,人们已经等待良久。 Facebook 开发平台的1.0 版本提供对 Facebook 好友、照片、活动和个人信息的访问。
API 使用 REST, 信息以 XML 格式提供。这也是当时社交 API 最通用的做法。
2006 年 9 月 20 日, Twitter 将 Twitter API 推向世界。
有点类似 eBay API, Twitter 推出 API 也是无奈之举。 太多的网站攻击和太多的非法 API,让Twitter不胜其烦。
Twitter 公开的 API,以 REST 风格的接口提供 JSON 和 XML格式的数据。
ProgrammableWeb
在研究 API 的历史中,关注点极易局限于 API 本身。 而忽略了 web API 整个历史上最重要的那个孤独身影 -ProgrammableWeb。
2005 年 7 月, John Musser 创立了 ProgrammableWeb。 在他最早的“关于我们”页面上,他是这么说的:
ProgrammableWeb 是一个基于“网络即平台”理念的推荐站点和博客。 我们针对使用 Web 2.0 API 来开发应用的人,提供各种新闻、信息及资源。
之所以创建这个网站,是因为我自己想用,却无法找到类似的站点: 为 web 平台开发提供一个技术上的起点。虽然无法确证,但我创建的上一个推荐站点,在 Google 的该类主题中,排名几乎是最高的。而这个站点,会有来自社区的各种协助和努力,相信它会更加成功。
希望于您有助。
John Musser - 西雅图, 2005年8月
Mashery
2006 年 12 月, Mashery,第一个 API 服务提供商,“低调” 的出现。它为那些想要提供公开和私有 API 的公司,提供文档支持、社区管理和访问控制。