Web API(Application Interface)簡單來說,便是透過開放的因特網(wǎng)傳輸協(xié)議,將提供的服務(wù)內(nèi)容以標(biāo)準(zhǔn)的界面來定義,以便進(jìn)行點(diǎn)對點(diǎn)之間的服務(wù)整合。由于運(yùn)行的平臺是在Web架構(gòu)之上,故常見的技術(shù)像是HTTP中的GET/POST、SOAP/HTTP, XML/RPC等,都是主要的組成架構(gòu),所定義的數(shù)據(jù)交換大都是屬應(yīng)用層以上。由于HTTP為企業(yè)對外及對內(nèi)均會開放的傳輸協(xié)議,業(yè)已發(fā)展成熟,故以 HTTP為基礎(chǔ)的Web API也降低了應(yīng)用服務(wù)在整合上的門坎。
山「谷」之「歌」, 余音繞梁
Google 致力于網(wǎng)絡(luò)技術(shù)研發(fā)及創(chuàng)新服務(wù)的提供不遺余力,從Web平臺到個(gè)人桌面化服務(wù),處處可見Google的蹤跡。它在網(wǎng)絡(luò)世界的布局已經(jīng)由點(diǎn)(單一個(gè)別的 Google服務(wù))展開到線(Google服務(wù)之間的彼此整合),未來將逐漸擴(kuò)展到面(提供網(wǎng)絡(luò)服務(wù)整合平臺),可謂將Web 2.0的精神發(fā)揮得淋漓盡致。
延續(xù)對李開復(fù)的挖角事件,以及Google在臺如同神秘般的征才流程,不管是「谷歌」還是網(wǎng)絡(luò)上所戲稱的「股溝」,Google對因特網(wǎng)所造成的影響已是有目共睹,它的一舉一動(dòng)已經(jīng)成為業(yè)界必然注目的焦點(diǎn),紛紛被同業(yè)視為模仿及學(xué)習(xí)的對象,每次新服務(wù)的問世都對業(yè)界造成不小的震撼,甚至威脅到相關(guān)既有服務(wù)的平臺供貨商,實(shí)在是令人又愛又恨的網(wǎng)絡(luò)巨人。
條條大路通Google
您 會發(fā)覺Google所提供的網(wǎng)絡(luò)服務(wù)到處都可以見到,像是使用率最高的網(wǎng)頁搜尋引擎,桌面搜尋機(jī)制,實(shí)時(shí)通訊及電子郵件服務(wù)。就因?yàn)樗焉品奖愕氖褂梅绞?,讓使用者的接受度大大提高。加上Google技術(shù)領(lǐng)先的優(yōu)勢,提供高質(zhì)量的產(chǎn)品及服務(wù),更因此讓使用者的忠誠度居高不下。
使用者除了 可以直接上Google的網(wǎng)站使用它們提供的服務(wù)之外,Google提供了這些網(wǎng)絡(luò)服務(wù)的API配方,讓許多廚師們都可以拿它來精心調(diào)制出美味的佳肴,隨廚師的創(chuàng)意提供千變?nèi)f化的網(wǎng)絡(luò)服務(wù),讓大家都可以享受Google這個(gè)網(wǎng)絡(luò)服務(wù)平臺,使得您設(shè)計(jì)的應(yīng)用程序內(nèi)容更加豐富完整。
輕輕松松跟Google打交道
在Google所提出的服務(wù)精神,希望每個(gè)因特網(wǎng)使用者都能享受它們所提供的任何服務(wù),當(dāng)然不只是信息人員。所以在與Google服務(wù)整合上,也讓使用者不會感到有相當(dāng)高的門坎,也能輕松上手。
過 去大家討論的API通常會圍繞在程序代碼上打轉(zhuǎn),實(shí)在太嚴(yán)肅,會讓讀者們覺得那是要會寫程序的人才會用到的東西,事實(shí)上在所有Google所提供的眾多服務(wù) 中,也提供了不需要撰寫程序亦可以使用的整合界面,使用的方式都是相當(dāng)輕松容易的,而且其強(qiáng)大的功能會讓您直呼不可思議呢!
就目前Google所提供的網(wǎng)絡(luò)服務(wù)API,依其功能型態(tài)及使用時(shí)機(jī)大致上分成三大類:
山「谷」之「歌」, 余音繞梁
Google 致力于網(wǎng)絡(luò)技術(shù)研發(fā)及創(chuàng)新服務(wù)的提供不遺余力,從Web平臺到個(gè)人桌面化服務(wù),處處可見Google的蹤跡。它在網(wǎng)絡(luò)世界的布局已經(jīng)由點(diǎn)(單一個(gè)別的 Google服務(wù))展開到線(Google服務(wù)之間的彼此整合),未來將逐漸擴(kuò)展到面(提供網(wǎng)絡(luò)服務(wù)整合平臺),可謂將Web 2.0的精神發(fā)揮得淋漓盡致。
延續(xù)對李開復(fù)的挖角事件,以及Google在臺如同神秘般的征才流程,不管是「谷歌」還是網(wǎng)絡(luò)上所戲稱的「股溝」,Google對因特網(wǎng)所造成的影響已是有目共睹,它的一舉一動(dòng)已經(jīng)成為業(yè)界必然注目的焦點(diǎn),紛紛被同業(yè)視為模仿及學(xué)習(xí)的對象,每次新服務(wù)的問世都對業(yè)界造成不小的震撼,甚至威脅到相關(guān)既有服務(wù)的平臺供貨商,實(shí)在是令人又愛又恨的網(wǎng)絡(luò)巨人。
條條大路通Google
您 會發(fā)覺Google所提供的網(wǎng)絡(luò)服務(wù)到處都可以見到,像是使用率最高的網(wǎng)頁搜尋引擎,桌面搜尋機(jī)制,實(shí)時(shí)通訊及電子郵件服務(wù)。就因?yàn)樗焉品奖愕氖褂梅绞?,讓使用者的接受度大大提高。加上Google技術(shù)領(lǐng)先的優(yōu)勢,提供高質(zhì)量的產(chǎn)品及服務(wù),更因此讓使用者的忠誠度居高不下。
使用者除了 可以直接上Google的網(wǎng)站使用它們提供的服務(wù)之外,Google提供了這些網(wǎng)絡(luò)服務(wù)的API配方,讓許多廚師們都可以拿它來精心調(diào)制出美味的佳肴,隨廚師的創(chuàng)意提供千變?nèi)f化的網(wǎng)絡(luò)服務(wù),讓大家都可以享受Google這個(gè)網(wǎng)絡(luò)服務(wù)平臺,使得您設(shè)計(jì)的應(yīng)用程序內(nèi)容更加豐富完整。
輕輕松松跟Google打交道
在Google所提出的服務(wù)精神,希望每個(gè)因特網(wǎng)使用者都能享受它們所提供的任何服務(wù),當(dāng)然不只是信息人員。所以在與Google服務(wù)整合上,也讓使用者不會感到有相當(dāng)高的門坎,也能輕松上手。
過 去大家討論的API通常會圍繞在程序代碼上打轉(zhuǎn),實(shí)在太嚴(yán)肅,會讓讀者們覺得那是要會寫程序的人才會用到的東西,事實(shí)上在所有Google所提供的眾多服務(wù) 中,也提供了不需要撰寫程序亦可以使用的整合界面,使用的方式都是相當(dāng)輕松容易的,而且其強(qiáng)大的功能會讓您直呼不可思議呢!
就目前Google所提供的網(wǎng)絡(luò)服務(wù)API,依其功能型態(tài)及使用時(shí)機(jī)大致上分成三大類:
- 強(qiáng)化網(wǎng)站功能(Enhance Your Web Site)
若您已經(jīng)有自己的網(wǎng)站或部落格,可以透過這類功能來強(qiáng)化您網(wǎng)站的機(jī)制,以及提供完整的網(wǎng)站分析管理功能,讓經(jīng)營您的網(wǎng)站更省事,更簡單。
- 一般使用者功能(Reach Google Users)
主要針對Google所提供的Client軟件,適用于一般使用者,提供可以安裝在個(gè)人計(jì)算機(jī)桌面中的小工具(Gadget)。這些以XML為主要撰寫語言,讓您的日常工作可以透過桌面與Google之間的密切結(jié)合更有效率。
- 提供整合界面(Integrate with Google)
這是針對進(jìn)階使用者,尤其是具有程序撰寫能力的開發(fā)人員所提供的程序界面,您可以依您所擅長的程序語言(Java, Perl, Python, PHP, Ruby及.NET等),透過標(biāo)準(zhǔn)的傳輸協(xié)議及開放標(biāo)準(zhǔn)來進(jìn)行實(shí)作。
接下來便針對一些熱門的API功能進(jìn)行介紹。
Google AJAX Search API
在 所有Google的Web服務(wù)中,最常被大家使用的便是其強(qiáng)大的搜尋引擎功能。在一個(gè)功能完整的網(wǎng)站里,搜尋機(jī)制已經(jīng)是基本配備,在過去這樣的功能需要導(dǎo)入某特定搜尋引擎的軟件套件,安裝在自己的機(jī)器上才能達(dá)成的理想,現(xiàn)在僅僅需要在Google網(wǎng)站上申請一組API License Key,便可以享受Google既有的搜尋功能,而不需要在自己家里搞一套搜尋引擎主機(jī)。
若您對撰寫程序有很大的學(xué)習(xí)障礙,Google提供了一種懶人機(jī)制,以增加HTML及JavaScript程序代碼的嵌入方式,就可以將Google的搜尋機(jī)制免費(fèi)安裝到你的網(wǎng)站中,而且還結(jié)合了最酷炫的AJAX技術(shù),這樣的搜尋機(jī)制遠(yuǎn)比自己動(dòng)手寫程序來得容易多了。
從 圖中您便可以很清楚看到,透過這樣的整合,不只是提供網(wǎng)頁內(nèi)容的搜尋,連視訊、部落格、新聞、地圖等內(nèi)容都可以一并呈現(xiàn)。這些不同性質(zhì)的內(nèi)容是透過 Google Gadget組件組合而成,像是Video Gadget、Map Gadget等,模塊化的結(jié)構(gòu)讓您可以彈性變動(dòng)搜尋的結(jié)果,而在這個(gè)內(nèi)嵌框架的里頭所使用的AJAX呈現(xiàn)技術(shù),讓操作方式更加友善便利。
Google Web API
當(dāng) 然,除了簡單的嵌入整合方式,手癢的程序開發(fā)者也可以透過Google所提供的API來將它的服務(wù)整合到自己的應(yīng)用程序中,Google針對搜尋機(jī)制提供 的API十分完整,您可以透過Web Services的業(yè)界標(biāo)準(zhǔn)界面讓整個(gè)操作使用更加流暢,這便需要花點(diǎn)心思寫點(diǎn)程序才有辦法達(dá)到的,可以依照您的需求進(jìn)行客制化,整合程度更高。
這 個(gè)函式庫里包括了.NET(C#), VB及Java的范例程序、WSDL描述文件、API參考手冊,及Java Doc文件。由于目前的Google Web API是透過Web Services的架構(gòu),所以只要依照WSDL描述檔的定義,以SOAP的方式呼叫取得搜尋結(jié)果即可,所以只要程序語言本身可以撰寫出SOAP Client就可以使用。若您是采用Java為主要開發(fā)語言,Google Web API提供已經(jīng)包裝好的SOAP Client鏈接庫,只花幾行程序即可撰寫完成,相當(dāng)容易。
為了讓資源能有效分享給普羅大眾,Google針對每個(gè)申請者有使用上的限 制。針對每個(gè)使用授權(quán)每日僅能呼叫1000次,而且每次的查詢結(jié)果僅回傳前1000筆,回傳則以最多10筆為一個(gè)單位,而搜尋內(nèi)容則不包括圖片、新聞等其 他內(nèi)容,僅限于網(wǎng)頁數(shù)據(jù),如此設(shè)計(jì)均是為及提升執(zhí)行效能所做的考慮。
當(dāng)然,這樣的函式庫是提供研究性質(zhì)之使用,而未被授權(quán)于任何與商業(yè)有關(guān)之應(yīng)用。在使用之前您最好還是詳讀一下授權(quán)合約內(nèi)容。
Google Web Toolkit (GWT)
相 信您使用了一些Google所提供的服務(wù)后,會對它在網(wǎng)頁上呈現(xiàn)的AJAX動(dòng)態(tài)效果印象深刻,這樣的設(shè)計(jì)對于使用者經(jīng)驗(yàn)是有正面評價(jià)的。但對AJAX這樣的技術(shù)也許對許多開發(fā)人員仍然是陌生的技術(shù),要能及時(shí)熟練上手也許會有困難,加上AJAX本身在開發(fā)測試過程中會有一定的困難度,故貼心的Google研 發(fā)團(tuán)隊(duì)便將其相關(guān)的技術(shù)以Java方式來呈現(xiàn),提供更廣泛的Java使用者也能開發(fā)出AJAX的應(yīng)用程序。
您可以將GWT視為Java軟 體框架,GWT具備了動(dòng)態(tài)可重用的特性,開發(fā)者只需要引用GWT提供的鏈接庫即可設(shè)出美美的AJAX UI畫面,避開了在Javascript程序撰寫時(shí)不易除錯(cuò)的問題,所有的開發(fā)方式可以依循原有的Java開發(fā)程序,結(jié)合您所熟悉的Java IDE工具(像是Eclipse)進(jìn)行開發(fā),同時(shí)也可以與JUnit整合,將單元測試自動(dòng)化以提高效率。
GWT提供了Java-to- JavaScript Compiler,可以將您結(jié)合GWT所撰寫的Java程序代碼轉(zhuǎn)譯成具備AJAX功能的JavaScript內(nèi)容。在開發(fā)過程中,您可以利用Host Mode對Java程序進(jìn)行測試,而不需要每次都轉(zhuǎn)成JavaScript才能測試最終產(chǎn)生的結(jié)果。而Web Mode則是將所有的Java程序轉(zhuǎn)成JavaScript后實(shí)際以Web界面執(zhí)行的方式。
在GWT里已經(jīng)幫您解決了AJAX對不同瀏覽器的支持問題,您只需要針對UI版面配置進(jìn)行設(shè)計(jì)即可。GWT提供了數(shù)種Panel應(yīng)用在不同的版面配置,類似AWT中的Layout Manager功能,所以你會發(fā)覺程序的寫法有點(diǎn)像在寫Swing應(yīng)用程序。
Google Map API
若 您的應(yīng)用程序中需要提供地理信息,包括地理行政圖、地區(qū)街道明細(xì)、以及路線規(guī)劃建議等, Google Map服務(wù)是個(gè)不錯(cuò)的選擇。它提供了世界各地的地理信息,同時(shí)可以選擇地圖、衛(wèi)星鳥瞰圖、以及混合顯示等呈現(xiàn)方式。進(jìn)一步它還可以提供您設(shè)定起迄點(diǎn)之間的實(shí)際距離,以及最佳路線建議等。
若您只是使用呈現(xiàn)地圖的單純功能,那就太小看Google Map了。為了讓地圖能更具可讀性,在上面加注信息是免不了的。Google Map API提供了Marker(以標(biāo)識符號突顯某特定的地點(diǎn)),InfoWindow(加注說明文字于訊息框中),及Polyline(以畫線方式標(biāo)示路線或范圍)等注記方式。其實(shí)在技術(shù)上的整合亦十分簡單,此API亦是利用HTML與JavaScript內(nèi)嵌方式來達(dá)成。
此服務(wù)整合常見的應(yīng)用如房屋中介(提供查詢對象的所在地理信息),求職訊息(提供征才企業(yè)的所在位置),旅游情報(bào)(提供旅游景點(diǎn)位置及重點(diǎn)地標(biāo)),交通路況查詢(提供兩地之間最佳路徑)等,讓僅僅只是冰冷的地址文字加上更豐富的圖像信息。
美 中不足的是,目前Google Map對于臺灣地區(qū)的地圖信息提供僅限于衛(wèi)星影像,而行政地圖的部份仍然未臻完整,對于想要提供區(qū)域性網(wǎng)站信息的內(nèi)容則稍嫌不足。而類似的服務(wù)您也可以參考由國人開發(fā)的UrMap你的地圖網(wǎng)(www.urmap.com),此網(wǎng)站服務(wù)亦提供Web API可供呼叫,使用的組件架構(gòu)也十分類似Google Map的設(shè)計(jì)方式,加上其提供的臺灣地圖街道行政區(qū)信息較為完整,比較符合國內(nèi)網(wǎng)站的應(yīng)用需求。
Google Toolbar API
對 于Google工具列應(yīng)該大家都不陌生,其方便強(qiáng)大的功能已經(jīng)成為瀏覽器的必備套件。在下載安裝Google工具列之后,在工具列上預(yù)設(shè)的按鈕功能也許仍 然無法滿足您的需要,所以Google工具列提供了API讓有興趣自行設(shè)計(jì)工具列按鈕的玩家們來使用,您也可以在Google 工具列上設(shè)計(jì)自訂按鈕功能,將一些常用的網(wǎng)址連結(jié)、RSS信息提供內(nèi)容放到工具列上,在使用上更為便捷。
只需要撰寫簡單的XML檔案,引用Google工具列特定的卷標(biāo)語法,就可以制作出您想要的功能按鈕。您也可以到Google工具列的按鈕集頁面中,搜尋別人已經(jīng)提供的工具列按鈕,也可以將您的精心杰作與其它Google工具列的使用者分享。
Google Desktop SDK
Google除了在網(wǎng)絡(luò)服務(wù)上有著卓越的使用率外,對于個(gè)人桌面的市場亦野心勃勃,自行推出桌面搜尋工具后,連微軟也不得不承認(rèn)一向占有優(yōu)勢地位的桌面也感受到威脅,也推出類似的桌面搜尋工具,頗有相互較勁的意味。
新 一版的Google Desktop 4除了包含既有的桌面搜尋功能之外,還提供可以與網(wǎng)絡(luò)服務(wù)直接連結(jié)的側(cè)欄(Sidebar)功能,讓您不需要開啟網(wǎng)頁瀏覽器也可以使用Google提供的網(wǎng)絡(luò)服務(wù)。側(cè)欄可以讓您下載安裝許多與Google現(xiàn)有網(wǎng)絡(luò)服務(wù)結(jié)合的Gadget小工具,像是實(shí)時(shí)新聞氣象服務(wù)、Gmail個(gè)人郵件瀏覽、個(gè)人相簿、行 事歷及待辦事項(xiàng)等等。Google已經(jīng)將Desktop視為網(wǎng)絡(luò)服務(wù)的延伸平臺,讓它的服務(wù)更能深入個(gè)人桌面前端,結(jié)合得更密切。
當(dāng)然在 Desktop平臺方面,Google也提供了開發(fā)Gadget的SDK,讓您可以設(shè)計(jì)出屬于個(gè)人色彩的桌面小工具,成為側(cè)欄的一部份。SDK支援 JavaScript, C, C++, C#, and/or VB.Net等技術(shù),下載的SDK中也包含一可視化設(shè)計(jì)工具Gadget Designer。Google也鼓勵(lì)那些網(wǎng)站內(nèi)容提供者,利用Google Gadget SDK開發(fā)出自己網(wǎng)站專屬的Gadget,并公布到Google的目錄中供下載使用,進(jìn)而讓更多的使用者認(rèn)識這些具有特色的網(wǎng)絡(luò)服務(wù),打響自己的知名度。
其它Google API
Google API種類繁多琳瑯滿目,以上僅針對較常被使用的部份進(jìn)行介紹。如果您需要參考關(guān)于Google API的技術(shù)資料,您可以造訪http://code.google.com,這兒包括了所有的API分類及相關(guān)說明,函式庫也是從這兒下載使用。以下便 列出所有Google API的清單供大家參考:
Google AJAX Search API
在 所有Google的Web服務(wù)中,最常被大家使用的便是其強(qiáng)大的搜尋引擎功能。在一個(gè)功能完整的網(wǎng)站里,搜尋機(jī)制已經(jīng)是基本配備,在過去這樣的功能需要導(dǎo)入某特定搜尋引擎的軟件套件,安裝在自己的機(jī)器上才能達(dá)成的理想,現(xiàn)在僅僅需要在Google網(wǎng)站上申請一組API License Key,便可以享受Google既有的搜尋功能,而不需要在自己家里搞一套搜尋引擎主機(jī)。
若您對撰寫程序有很大的學(xué)習(xí)障礙,Google提供了一種懶人機(jī)制,以增加HTML及JavaScript程序代碼的嵌入方式,就可以將Google的搜尋機(jī)制免費(fèi)安裝到你的網(wǎng)站中,而且還結(jié)合了最酷炫的AJAX技術(shù),這樣的搜尋機(jī)制遠(yuǎn)比自己動(dòng)手寫程序來得容易多了。
從 圖中您便可以很清楚看到,透過這樣的整合,不只是提供網(wǎng)頁內(nèi)容的搜尋,連視訊、部落格、新聞、地圖等內(nèi)容都可以一并呈現(xiàn)。這些不同性質(zhì)的內(nèi)容是透過 Google Gadget組件組合而成,像是Video Gadget、Map Gadget等,模塊化的結(jié)構(gòu)讓您可以彈性變動(dòng)搜尋的結(jié)果,而在這個(gè)內(nèi)嵌框架的里頭所使用的AJAX呈現(xiàn)技術(shù),讓操作方式更加友善便利。
Google Web API
當(dāng) 然,除了簡單的嵌入整合方式,手癢的程序開發(fā)者也可以透過Google所提供的API來將它的服務(wù)整合到自己的應(yīng)用程序中,Google針對搜尋機(jī)制提供 的API十分完整,您可以透過Web Services的業(yè)界標(biāo)準(zhǔn)界面讓整個(gè)操作使用更加流暢,這便需要花點(diǎn)心思寫點(diǎn)程序才有辦法達(dá)到的,可以依照您的需求進(jìn)行客制化,整合程度更高。
這 個(gè)函式庫里包括了.NET(C#), VB及Java的范例程序、WSDL描述文件、API參考手冊,及Java Doc文件。由于目前的Google Web API是透過Web Services的架構(gòu),所以只要依照WSDL描述檔的定義,以SOAP的方式呼叫取得搜尋結(jié)果即可,所以只要程序語言本身可以撰寫出SOAP Client就可以使用。若您是采用Java為主要開發(fā)語言,Google Web API提供已經(jīng)包裝好的SOAP Client鏈接庫,只花幾行程序即可撰寫完成,相當(dāng)容易。
為了讓資源能有效分享給普羅大眾,Google針對每個(gè)申請者有使用上的限 制。針對每個(gè)使用授權(quán)每日僅能呼叫1000次,而且每次的查詢結(jié)果僅回傳前1000筆,回傳則以最多10筆為一個(gè)單位,而搜尋內(nèi)容則不包括圖片、新聞等其 他內(nèi)容,僅限于網(wǎng)頁數(shù)據(jù),如此設(shè)計(jì)均是為及提升執(zhí)行效能所做的考慮。
當(dāng)然,這樣的函式庫是提供研究性質(zhì)之使用,而未被授權(quán)于任何與商業(yè)有關(guān)之應(yīng)用。在使用之前您最好還是詳讀一下授權(quán)合約內(nèi)容。
Google Web Toolkit (GWT)
相 信您使用了一些Google所提供的服務(wù)后,會對它在網(wǎng)頁上呈現(xiàn)的AJAX動(dòng)態(tài)效果印象深刻,這樣的設(shè)計(jì)對于使用者經(jīng)驗(yàn)是有正面評價(jià)的。但對AJAX這樣的技術(shù)也許對許多開發(fā)人員仍然是陌生的技術(shù),要能及時(shí)熟練上手也許會有困難,加上AJAX本身在開發(fā)測試過程中會有一定的困難度,故貼心的Google研 發(fā)團(tuán)隊(duì)便將其相關(guān)的技術(shù)以Java方式來呈現(xiàn),提供更廣泛的Java使用者也能開發(fā)出AJAX的應(yīng)用程序。
您可以將GWT視為Java軟 體框架,GWT具備了動(dòng)態(tài)可重用的特性,開發(fā)者只需要引用GWT提供的鏈接庫即可設(shè)出美美的AJAX UI畫面,避開了在Javascript程序撰寫時(shí)不易除錯(cuò)的問題,所有的開發(fā)方式可以依循原有的Java開發(fā)程序,結(jié)合您所熟悉的Java IDE工具(像是Eclipse)進(jìn)行開發(fā),同時(shí)也可以與JUnit整合,將單元測試自動(dòng)化以提高效率。
GWT提供了Java-to- JavaScript Compiler,可以將您結(jié)合GWT所撰寫的Java程序代碼轉(zhuǎn)譯成具備AJAX功能的JavaScript內(nèi)容。在開發(fā)過程中,您可以利用Host Mode對Java程序進(jìn)行測試,而不需要每次都轉(zhuǎn)成JavaScript才能測試最終產(chǎn)生的結(jié)果。而Web Mode則是將所有的Java程序轉(zhuǎn)成JavaScript后實(shí)際以Web界面執(zhí)行的方式。
在GWT里已經(jīng)幫您解決了AJAX對不同瀏覽器的支持問題,您只需要針對UI版面配置進(jìn)行設(shè)計(jì)即可。GWT提供了數(shù)種Panel應(yīng)用在不同的版面配置,類似AWT中的Layout Manager功能,所以你會發(fā)覺程序的寫法有點(diǎn)像在寫Swing應(yīng)用程序。
Google Map API
若 您的應(yīng)用程序中需要提供地理信息,包括地理行政圖、地區(qū)街道明細(xì)、以及路線規(guī)劃建議等, Google Map服務(wù)是個(gè)不錯(cuò)的選擇。它提供了世界各地的地理信息,同時(shí)可以選擇地圖、衛(wèi)星鳥瞰圖、以及混合顯示等呈現(xiàn)方式。進(jìn)一步它還可以提供您設(shè)定起迄點(diǎn)之間的實(shí)際距離,以及最佳路線建議等。
若您只是使用呈現(xiàn)地圖的單純功能,那就太小看Google Map了。為了讓地圖能更具可讀性,在上面加注信息是免不了的。Google Map API提供了Marker(以標(biāo)識符號突顯某特定的地點(diǎn)),InfoWindow(加注說明文字于訊息框中),及Polyline(以畫線方式標(biāo)示路線或范圍)等注記方式。其實(shí)在技術(shù)上的整合亦十分簡單,此API亦是利用HTML與JavaScript內(nèi)嵌方式來達(dá)成。
此服務(wù)整合常見的應(yīng)用如房屋中介(提供查詢對象的所在地理信息),求職訊息(提供征才企業(yè)的所在位置),旅游情報(bào)(提供旅游景點(diǎn)位置及重點(diǎn)地標(biāo)),交通路況查詢(提供兩地之間最佳路徑)等,讓僅僅只是冰冷的地址文字加上更豐富的圖像信息。
美 中不足的是,目前Google Map對于臺灣地區(qū)的地圖信息提供僅限于衛(wèi)星影像,而行政地圖的部份仍然未臻完整,對于想要提供區(qū)域性網(wǎng)站信息的內(nèi)容則稍嫌不足。而類似的服務(wù)您也可以參考由國人開發(fā)的UrMap你的地圖網(wǎng)(www.urmap.com),此網(wǎng)站服務(wù)亦提供Web API可供呼叫,使用的組件架構(gòu)也十分類似Google Map的設(shè)計(jì)方式,加上其提供的臺灣地圖街道行政區(qū)信息較為完整,比較符合國內(nèi)網(wǎng)站的應(yīng)用需求。
Google Toolbar API
對 于Google工具列應(yīng)該大家都不陌生,其方便強(qiáng)大的功能已經(jīng)成為瀏覽器的必備套件。在下載安裝Google工具列之后,在工具列上預(yù)設(shè)的按鈕功能也許仍 然無法滿足您的需要,所以Google工具列提供了API讓有興趣自行設(shè)計(jì)工具列按鈕的玩家們來使用,您也可以在Google 工具列上設(shè)計(jì)自訂按鈕功能,將一些常用的網(wǎng)址連結(jié)、RSS信息提供內(nèi)容放到工具列上,在使用上更為便捷。
只需要撰寫簡單的XML檔案,引用Google工具列特定的卷標(biāo)語法,就可以制作出您想要的功能按鈕。您也可以到Google工具列的按鈕集頁面中,搜尋別人已經(jīng)提供的工具列按鈕,也可以將您的精心杰作與其它Google工具列的使用者分享。
Google Desktop SDK
Google除了在網(wǎng)絡(luò)服務(wù)上有著卓越的使用率外,對于個(gè)人桌面的市場亦野心勃勃,自行推出桌面搜尋工具后,連微軟也不得不承認(rèn)一向占有優(yōu)勢地位的桌面也感受到威脅,也推出類似的桌面搜尋工具,頗有相互較勁的意味。
新 一版的Google Desktop 4除了包含既有的桌面搜尋功能之外,還提供可以與網(wǎng)絡(luò)服務(wù)直接連結(jié)的側(cè)欄(Sidebar)功能,讓您不需要開啟網(wǎng)頁瀏覽器也可以使用Google提供的網(wǎng)絡(luò)服務(wù)。側(cè)欄可以讓您下載安裝許多與Google現(xiàn)有網(wǎng)絡(luò)服務(wù)結(jié)合的Gadget小工具,像是實(shí)時(shí)新聞氣象服務(wù)、Gmail個(gè)人郵件瀏覽、個(gè)人相簿、行 事歷及待辦事項(xiàng)等等。Google已經(jīng)將Desktop視為網(wǎng)絡(luò)服務(wù)的延伸平臺,讓它的服務(wù)更能深入個(gè)人桌面前端,結(jié)合得更密切。
當(dāng)然在 Desktop平臺方面,Google也提供了開發(fā)Gadget的SDK,讓您可以設(shè)計(jì)出屬于個(gè)人色彩的桌面小工具,成為側(cè)欄的一部份。SDK支援 JavaScript, C, C++, C#, and/or VB.Net等技術(shù),下載的SDK中也包含一可視化設(shè)計(jì)工具Gadget Designer。Google也鼓勵(lì)那些網(wǎng)站內(nèi)容提供者,利用Google Gadget SDK開發(fā)出自己網(wǎng)站專屬的Gadget,并公布到Google的目錄中供下載使用,進(jìn)而讓更多的使用者認(rèn)識這些具有特色的網(wǎng)絡(luò)服務(wù),打響自己的知名度。
其它Google API
Google API種類繁多琳瑯滿目,以上僅針對較常被使用的部份進(jìn)行介紹。如果您需要參考關(guān)于Google API的技術(shù)資料,您可以造訪http://code.google.com,這兒包括了所有的API分類及相關(guān)說明,函式庫也是從這兒下載使用。以下便 列出所有Google API的清單供大家參考:
Google API |
說明 |
Google Account Authentication |
針對Client軟件(ClientLogin API)及Web應(yīng)用程序(AuthSub API)對Google會員的身份認(rèn)證功能。 |
AdSense API |
提供與Google網(wǎng)絡(luò)廣告的整合,可以在您的網(wǎng)頁上置入AdSense網(wǎng)頁,利用Google播送平臺發(fā)送網(wǎng)絡(luò)廣告并進(jìn)行相關(guān)的廣告管理功能。 |
AdWords API |
提供廣告客戶自己的應(yīng)用程序可直接對Google AdWords Server主機(jī)進(jìn)行廣告活動(dòng)設(shè)定及管理。 |
Google AJAX Search API |
提供Web Search功能以AJAX方式呈現(xiàn),在您的網(wǎng)頁上以嵌入方式提供Google搜尋功能。 |
Google Base Data API |
提供對于Google Data的數(shù)據(jù)存取功能 |
Blogger Data API |
與Blogger服務(wù)整合,提供從您的網(wǎng)絡(luò)服務(wù)對Blogger.com的內(nèi)容進(jìn)行編輯的功能。 |
Google Calendar Data API |
與Google Calendar服務(wù)整合,可以透過它進(jìn)行事件更新, |
Google Data APIs |
提供針對Google Blogger, Google Base, Google Calendar等服務(wù)的數(shù)據(jù)交換功能。 |
Google Desktop SDK |
提供建構(gòu)在Google Desktop平臺上的開發(fā)工具,應(yīng)用程序可以直接利用它來開發(fā)出桌面小工具。 |
Google Earth KML |
利用KML定義的地理信息來與Google Earth服務(wù)整合。 |
Google Gadgets API |
用來開發(fā)Google Gadget小工具,Gadget又分成Universal Gadget及Desktop Gadget,依您的需求使用不同的API來進(jìn)行整合開發(fā)。 |
Gmail Atom Feeds |
提供以Atom方式呈現(xiàn)Gmail信收件夾內(nèi)容,將Gmail內(nèi)容整合到您的網(wǎng)頁中以利快速閱讀。 |
Google Checkout API |
與Google提供的電子商務(wù)在線付款機(jī)制整合。 |
Google Web Toolkit |
提供以Java鏈接庫設(shè)計(jì)Web AJAX界面之功能。 |
Google Groups Feeds |
提供搜尋網(wǎng)上論壇(Groups)并以Atom或RSS呈現(xiàn)結(jié)果 |
Google Maps API |
提供與Google Map服務(wù)整合,在您的網(wǎng)頁中提供地圖服務(wù),并與網(wǎng)頁數(shù)據(jù)密切結(jié)合,提供圖文并茂的呈現(xiàn)方式。 |
Google News Feeds |
提供搜尋新聞(News)并以Atom或RSS呈現(xiàn)結(jié)果。 |
Google Related Links |
取得Google搜尋結(jié)果后之類似網(wǎng)頁的內(nèi)容。 |
Google Search Appliance APIs |
提供了Search Protocol, Feeds Protocol, Authorization Protocol三種數(shù)據(jù)傳輸協(xié)議 |
Google Search History Feeds |
提供個(gè)人化搜尋歷史記錄之查詢, 包括網(wǎng)頁, 新聞等內(nèi)容的搜尋記錄。 |
Google Sitemaps |
提供讓Google搜尋能更精確的方式,提高您的網(wǎng)站在搜尋結(jié)果的曝光率。 |
Google Talk XMPP |
提供與Google Talk之間訊息傳遞的通訊協(xié)議。在您的應(yīng)用程序中需要提供與Google Talk相互聯(lián)系或狀態(tài)查詢時(shí)可使用。 |
Google Toolbar API |
提供Google工具列客制化按鈕的功能。 |
Google SOAP Search API |
透過Web Services方式呼叫,將Google的搜尋功能整合到自己的應(yīng)用程序或網(wǎng)頁中。 |
與開放源碼社群的緊密結(jié)合
除了Google自己提供的工具套件及程序接口外,您也可以在開放源碼社群中找到不少與Google服務(wù)有關(guān)的項(xiàng)目。為Google如癡如狂的使用者不在少數(shù),這些開放源碼提供了Google功能的延伸應(yīng)用,也是您的不賴的另類選擇。
若您是Mozilla FireFox的愛用者,除基本功能已經(jīng)提供了Google的搜尋功能列之外,您還可以下載安裝針對Google量身設(shè)計(jì)的擴(kuò)充套件(Extension)來使用,像是CustomizeGoogle等。
結(jié)語
在Web 2.0的世界中,Google只是其中一個(gè)比較顯著且知名的例子,其它像是Amazon, Delicious, Cocomment等許多網(wǎng)絡(luò)服務(wù)平臺,也都提供Web API的機(jī)制。單純來自一種數(shù)據(jù)來源已經(jīng)無法滿足現(xiàn)今網(wǎng)絡(luò)使用者的需求,未來的服務(wù)將是以軟件混搭(Mashup)的概念(意即Web應(yīng)用系統(tǒng)整合多種不 同的信息來源)來發(fā)展,信息的整合勢必是未來的趨勢。
除了Google自己提供的工具套件及程序接口外,您也可以在開放源碼社群中找到不少與Google服務(wù)有關(guān)的項(xiàng)目。為Google如癡如狂的使用者不在少數(shù),這些開放源碼提供了Google功能的延伸應(yīng)用,也是您的不賴的另類選擇。
若您是Mozilla FireFox的愛用者,除基本功能已經(jīng)提供了Google的搜尋功能列之外,您還可以下載安裝針對Google量身設(shè)計(jì)的擴(kuò)充套件(Extension)來使用,像是CustomizeGoogle等。
結(jié)語
在Web 2.0的世界中,Google只是其中一個(gè)比較顯著且知名的例子,其它像是Amazon, Delicious, Cocomment等許多網(wǎng)絡(luò)服務(wù)平臺,也都提供Web API的機(jī)制。單純來自一種數(shù)據(jù)來源已經(jīng)無法滿足現(xiàn)今網(wǎng)絡(luò)使用者的需求,未來的服務(wù)將是以軟件混搭(Mashup)的概念(意即Web應(yīng)用系統(tǒng)整合多種不 同的信息來源)來發(fā)展,信息的整合勢必是未來的趨勢。
{{item.content}}