您的位置:首页 > 编程语言 > Go语言

Web开放趋势代表:无所不在的Google API

2006-12-24 16:30 211 查看
[align=left]Web API(Application Interface)简单来说,便是透过开放的因特网传输协议,将提供的服务内容以标准的界面来定义,以便进行点对点之间的服务整合。由于运行的平台是在Web架构之上,故常见的技术像是HTTP中的GET/POST、SOAP/HTTP, XML/RPC等,都是主要的组成架构,所定义的数据交换大都是属应用层以上。由于HTTP为企业对外及对内均会开放的传输协议,业已发展成熟,故以 HTTP为基础的Web API也降低了应用服务在整合上的门坎。

山「谷」之「歌」, 余音绕梁

Google 致力于网络技术研发及创新服务的提供不遗余力,从Web平台到个人桌面化服务,处处可见Google的踪迹。它在网络世界的布局已经由点(单一个别的 Google服务)展开到线(Google服务之间的彼此整合),未来将逐渐扩展到面(提供网络服务整合平台),可谓将Web 2.0的精神发挥得淋漓尽致。

延续对李开复的挖角事件,以及Google在台如同神秘般的征才流程,不管是「谷歌」还是网络上所戏称的「股沟」,Google对因特网所造成的影响已是有目共睹,它的一举一动已经成为业界必然注目的焦点,纷纷被同业视为模仿及学习的对象,每次新服务的问世都对业界造成不小的震撼,甚至威胁到相关既有服务的平台供货商,实在是令人又爱又恨的网络巨人。

条条大路通Google

您 会发觉Google所提供的网络服务到处都可以见到,像是使用率最高的网页搜寻引擎,桌面搜寻机制,实时通讯及电子邮件服务。就因为它友善方便的使用方式,让使用者的接受度大大提高。加上Google技术领先的优势,提供高质量的产品及服务,更因此让使用者的忠诚度居高不下。

使用者除了 可以直接上Google的网站使用它们提供的服务之外,Google提供了这些网络服务的API配方,让许多厨师们都可以拿它来精心调制出美味的佳肴,随厨师的创意提供千变万化的网络服务,让大家都可以享受Google这个网络服务平台,使得您设计的应用程序内容更加丰富完整。
轻轻松松跟Google打交道

在Google所提出的服务精神,希望每个因特网使用者都能享受它们所提供的任何服务,当然不只是信息人员。所以在与Google服务整合上,也让使用者不会感到有相当高的门坎,也能轻松上手。

过 去大家讨论的API通常会围绕在程序代码上打转,实在太严肃,会让读者们觉得那是要会写程序的人才会用到的东西,事实上在所有Google所提供的众多服务 中,也提供了不需要撰写程序亦可以使用的整合界面,使用的方式都是相当轻松容易的,而且其强大的功能会让您直呼不可思议呢!

就目前Google所提供的网络服务API,依其功能型态及使用时机大致上分成三大类:[/align]

强化网站功能(Enhance Your Web Site)

[align=left]若您已经有自己的网站或部落格,可以透过这类功能来强化您网站的机制,以及提供完整的网站分析管理功能,让经营您的网站更省事,更简单。[/align]

一般使用者功能(Reach Google Users)

[align=left]主要针对Google所提供的Client软件,适用于一般使用者,提供可以安装在个人计算机桌面中的小工具(Gadget)。这些以XML为主要撰写语言,让您的日常工作可以透过桌面与Google之间的密切结合更有效率。[/align]

提供整合界面(Integrate with Google)

[align=left]这是针对进阶使用者,尤其是具有程序撰写能力的开发人员所提供的程序界面,您可以依您所擅长的程序语言(Java, Perl, Python, PHP, Ruby及.NET等),透过标准的传输协议及开放标准来进行实作。[/align]
[align=left]接下来便针对一些热门的API功能进行介绍。

Google AJAX Search API

在 所有Google的Web服务中,最常被大家使用的便是其强大的搜寻引擎功能。在一个功能完整的网站里,搜寻机制已经是基本配备,在过去这样的功能需要导入某特定搜寻引擎的软件套件,安装在自己的机器上才能达成的理想,现在仅仅需要在Google网站上申请一组API License Key,便可以享受Google既有的搜寻功能,而不需要在自己家里搞一套搜寻引擎主机。

若您对撰写程序有很大的学习障碍,Google提供了一种懒人机制,以增加HTML及JavaScript程序代码的嵌入方式,就可以将Google的搜寻机制免费安装到你的网站中,而且还结合了最酷炫的AJAX技术,这样的搜寻机制远比自己动手写程序来得容易多了。

从 图中您便可以很清楚看到,透过这样的整合,不只是提供网页内容的搜寻,连视讯、部落格、新闻、地图等内容都可以一并呈现。这些不同性质的内容是透过 Google Gadget组件组合而成,像是Video Gadget、Map Gadget等,模块化的结构让您可以弹性变动搜寻的结果,而在这个内嵌框架的里头所使用的AJAX呈现技术,让操作方式更加友善便利。

Google Web API

当 然,除了简单的嵌入整合方式,手痒的程序开发者也可以透过Google所提供的API来将它的服务整合到自己的应用程序中,Google针对搜寻机制提供 的API十分完整,您可以透过Web Services的业界标准界面让整个操作使用更加流畅,这便需要花点心思写点程序才有办法达到的,可以依照您的需求进行客制化,整合程度更高。

这 个函式库里包括了.NET(C#), VB及Java的范例程序、WSDL描述文件、API参考手册,及Java Doc文件。由于目前的Google Web API是透过Web Services的架构,所以只要依照WSDL描述档的定义,以SOAP的方式呼叫取得搜寻结果即可,所以只要程序语言本身可以撰写出SOAP Client就可以使用。若您是采用Java为主要开发语言,Google Web API提供已经包装好的SOAP Client链接库,只花几行程序即可撰写完成,相当容易。

为了让资源能有效分享给普罗大众,Google针对每个申请者有使用上的限 制。针对每个使用授权每日仅能呼叫1000次,而且每次的查询结果仅回传前1000笔,回传则以最多10笔为一个单位,而搜寻内容则不包括图片、新闻等其 他内容,仅限于网页数据,如此设计均是为及提升执行效能所做的考虑。

当然,这样的函式库是提供研究性质之使用,而未被授权于任何与商业有关之应用。在使用之前您最好还是详读一下授权合约内容。

Google Web Toolkit (GWT)

相 信您使用了一些Google所提供的服务后,会对它在网页上呈现的AJAX动态效果印象深刻,这样的设计对于使用者经验是有正面评价的。但对AJAX这样的技术也许对许多开发人员仍然是陌生的技术,要能及时熟练上手也许会有困难,加上AJAX本身在开发测试过程中会有一定的困难度,故贴心的Google研 发团队便将其相关的技术以Java方式来呈现,提供更广泛的Java使用者也能开发出AJAX的应用程序。

您可以将GWT视为Java软 体框架,GWT具备了动态可重用的特性,开发者只需要引用GWT提供的链接库即可设出美美的AJAX UI画面,避开了在Javascript程序撰写时不易除错的问题,所有的开发方式可以依循原有的Java开发程序,结合您所熟悉的Java IDE工具(像是Eclipse)进行开发,同时也可以与JUnit整合,将单元测试自动化以提高效率。

GWT提供了Java-to- JavaScript Compiler,可以将您结合GWT所撰写的Java程序代码转译成具备AJAX功能的JavaScript内容。在开发过程中,您可以利用Host Mode对Java程序进行测试,而不需要每次都转成JavaScript才能测试最终产生的结果。而Web Mode则是将所有的Java程序转成JavaScript后实际以Web界面执行的方式。

在GWT里已经帮您解决了AJAX对不同浏览器的支持问题,您只需要针对UI版面配置进行设计即可。GWT提供了数种Panel应用在不同的版面配置,类似AWT中的Layout Manager功能,所以你会发觉程序的写法有点像在写Swing应用程序。

Google Map API

若 您的应用程序中需要提供地理信息,包括地理行政图、地区街道明细、以及路线规划建议等, Google Map服务是个不错的选择。它提供了世界各地的地理信息,同时可以选择地图、卫星鸟瞰图、以及混合显示等呈现方式。进一步它还可以提供您设定起迄点之间的实际距离,以及最佳路线建议等。

若您只是使用呈现地图的单纯功能,那就太小看Google Map了。为了让地图能更具可读性,在上面加注信息是免不了的。Google Map API提供了Marker(以标识符号突显某特定的地点),InfoWindow(加注说明文字于讯息框中),及Polyline(以画线方式标示路线或范围)等注记方式。其实在技术上的整合亦十分简单,此API亦是利用HTML与JavaScript内嵌方式来达成。

此服务整合常见的应用如房屋中介(提供查询对象的所在地理信息),求职讯息(提供征才企业的所在位置),旅游情报(提供旅游景点位置及重点地标),交通路况查询(提供两地之间最佳路径)等,让仅仅只是冰冷的地址文字加上更丰富的图像信息。

美 中不足的是,目前Google Map对于台湾地区的地图信息提供仅限于卫星影像,而行政地图的部份仍然未臻完整,对于想要提供区域性网站信息的内容则稍嫌不足。而类似的服务您也可以参考由国人开发的UrMap你的地图网(www.urmap.com),此网站服务亦提供Web API可供呼叫,使用的组件架构也十分类似Google Map的设计方式,加上其提供的台湾地图街道行政区信息较为完整,比较符合国内网站的应用需求。

Google Toolbar API

对 于Google工具列应该大家都不陌生,其方便强大的功能已经成为浏览器的必备套件。在下载安装Google工具列之后,在工具列上预设的按钮功能也许仍 然无法满足您的需要,所以Google工具列提供了API让有兴趣自行设计工具列按钮的玩家们来使用,您也可以在Google 工具列上设计自订按钮功能,将一些常用的网址连结、RSS信息提供内容放到工具列上,在使用上更为便捷。

只需要撰写简单的XML档案,引用Google工具列特定的卷标语法,就可以制作出您想要的功能按钮。您也可以到Google工具列的按钮集页面中,搜寻别人已经提供的工具列按钮,也可以将您的精心杰作与其它Google工具列的使用者分享。

Google Desktop SDK

Google除了在网络服务上有着卓越的使用率外,对于个人桌面的市场亦野心勃勃,自行推出桌面搜寻工具后,连微软也不得不承认一向占有优势地位的桌面也感受到威胁,也推出类似的桌面搜寻工具,颇有相互较劲的意味。

新 一版的Google Desktop 4除了包含既有的桌面搜寻功能之外,还提供可以与网络服务直接连结的侧栏(Sidebar)功能,让您不需要开启网页浏览器也可以使用Google提供的网络服务。侧栏可以让您下载安装许多与Google现有网络服务结合的Gadget小工具,像是实时新闻气象服务、Gmail个人邮件浏览、个人相簿、行 事历及待办事项等等。Google已经将Desktop视为网络服务的延伸平台,让它的服务更能深入个人桌面前端,结合得更密切。

当然在 Desktop平台方面,Google也提供了开发Gadget的SDK,让您可以设计出属于个人色彩的桌面小工具,成为侧栏的一部份。SDK支援 JavaScript, C, C++, C#, and/or VB.Net等技术,下载的SDK中也包含一可视化设计工具Gadget Designer。Google也鼓励那些网站内容提供者,利用Google Gadget SDK开发出自己网站专属的Gadget,并公布到Google的目录中供下载使用,进而让更多的使用者认识这些具有特色的网络服务,打响自己的知名度。

其它Google API

Google API种类繁多琳琅满目,以上仅针对较常被使用的部份进行介绍。如果您需要参考关于Google API的技术资料,您可以造访http://code.google.com,这儿包括了所有的API分类及相关说明,函式库也是从这儿下载使用。以下便 列出所有Google API的清单供大家参考:[/align]
[align=left]Google API[/align]
[align=left]说明[/align]
[align=left]Google Account Authentication[/align]
[align=left]针对Client软件(ClientLogin API)及Web应用程序(AuthSub API)对Google会员的身份认证功能。[/align]
[align=left]AdSense API[/align]
[align=left]提供与Google网络广告的整合,可以在您的网页上置入AdSense网页,利用Google播送平台发送网络广告并进行相关的广告管理功能。[/align]
[align=left]AdWords API[/align]
[align=left]提供广告客户自己的应用程序可直接对Google AdWords Server主机进行广告活动设定及管理。[/align]
[align=left]Google AJAX Search API[/align]
[align=left]提供Web Search功能以AJAX方式呈现,在您的网页上以嵌入方式提供Google搜寻功能。[/align]
[align=left]Google Base Data API[/align]
[align=left]提供对于Google Data的数据存取功能[/align]
[align=left]Blogger Data API[/align]
[align=left]与Blogger服务整合,提供从您的网络服务对Blogger.com的内容进行编辑的功能。[/align]
[align=left]Google Calendar Data API[/align]
[align=left]与Google Calendar服务整合,可以透过它进行事件更新,[/align]
[align=left]Google Data APIs[/align]
[align=left]提供针对Google Blogger, Google Base, Google Calendar等服务的数据交换功能。[/align]
[align=left]Google Desktop SDK[/align]
[align=left]提供建构在Google Desktop平台上的开发工具,应用程序可以直接利用它来开发出桌面小工具。[/align]
[align=left]Google Earth KML[/align]
[align=left]利用KML定义的地理信息来与Google Earth服务整合。[/align]
[align=left]Google Gadgets API[/align]
[align=left]用来开发Google Gadget小工具,Gadget又分成Universal Gadget及Desktop Gadget,依您的需求使用不同的API来进行整合开发。[/align]
[align=left]Gmail Atom Feeds[/align]
[align=left]提供以Atom方式呈现Gmail信收件夹内容,将Gmail内容整合到您的网页中以利快速阅读。[/align]
[align=left]Google Checkout API[/align]
[align=left]与Google提供的电子商务在线付款机制整合。[/align]
[align=left]Google Web Toolkit[/align]
[align=left]提供以Java链接库设计Web AJAX界面之功能。[/align]
[align=left]Google Groups Feeds[/align]
[align=left]提供搜寻网上论坛(Groups)并以Atom或RSS呈现结果[/align]
[align=left]Google Maps API[/align]
[align=left]提供与Google Map服务整合,在您的网页中提供地图服务,并与网页数据密切结合,提供图文并茂的呈现方式。[/align]
[align=left]Google News Feeds[/align]
[align=left]提供搜寻新闻(News)并以Atom或RSS呈现结果。[/align]
[align=left]Google Related Links[/align]
[align=left]取得Google搜寻结果后之类似网页的内容。[/align]
[align=left]Google Search Appliance APIs[/align]
[align=left]提供了Search Protocol, Feeds Protocol, Authorization Protocol三种数据传输协议[/align]
[align=left]Google Search History Feeds[/align]
[align=left]提供个人化搜寻历史记录之查询, 包括网页, 新闻等内容的搜寻记录。[/align]
[align=left]Google Sitemaps[/align]
[align=left]提供让Google搜寻能更精确的方式,提高您的网站在搜寻结果的曝光率。[/align]
[align=left]Google Talk XMPP[/align]
[align=left]提供与Google Talk之间讯息传递的通讯协议。在您的应用程序中需要提供与Google Talk相互联系或状态查询时可使用。[/align]
[align=left]Google Toolbar API[/align]
[align=left]提供Google工具列客制化按钮的功能。[/align]
[align=left]Google SOAP Search API[/align]
[align=left]透过Web Services方式呼叫,将Google的搜寻功能整合到自己的应用程序或网页中。[/align]
[align=left]与开放源码社群的紧密结合

除了Google自己提供的工具套件及程序接口外,您也可以在开放源码社群中找到不少与Google服务有关的项目。为Google如痴如狂的使用者不在少数,这些开放源码提供了Google功能的延伸应用,也是您的不赖的另类选择。

若您是Mozilla FireFox的爱用者,除基本功能已经提供了Google的搜寻功能列之外,您还可以下载安装针对Google量身设计的扩充套件(Extension)来使用,像是CustomizeGoogle等。

结语

在Web 2.0的世界中,Google只是其中一个比较显著且知名的例子,其它像是Amazon, Delicious, Cocomment等许多网络服务平台,也都提供Web API的机制。单纯来自一种数据来源已经无法满足现今网络使用者的需求,未来的服务将是以软件混搭(Mashup)的概念(意即Web应用系统整合多种不 同的信息来源)来发展,信息的整合势必是未来的趋势。[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: