Web開放趨勢代表:無所不在的Google API(轉)

Web開放趨勢代表:無所不在的Google API(轉)

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,依其功能型態及使用時機大致上分成三大類:
強化網站功能(Enhance Your Web Site)
若您已經有自己的網站或部落格,可以透過這類功能來強化您網站的機制,以及提供完整的網站分析管理功能,讓經營您的網站更省事,更簡單。
一般使用者功能(Reach Google Users)
主要針對Google所提供的Client軟件,適用於一般使用者,提供可以安裝在個人計算機桌面中的小工具(Gadget)。這些以XML爲主要撰寫語言,讓您的日常工作可以透過桌面與Google之間的密切結合更有效率。< /span>
提供整合界面(Integrate with Google)
這是針對進階使用者,尤其是具有程序撰寫能力的開發人員所提供的程序界面,您可以依您所擅長的程序語言(Java, Perl, Python, PHP, Ruby及.NET等),透過標準的傳輸協議及開放標準來進行實作。
接下來便針對一些熱門的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的清單供大家參考:
·Google Account Authentication - 針對Client軟件(ClientLogin API)及Web應用程序(AuthSub API)對Google會員的身份認證功能。
·AdSense API - 提供與Google網絡廣告的整合,可以在您的網頁上置入AdSense網頁,利用Google播送平臺發送網絡廣告並進行相關的廣告管理功能。
·AdWords API - 提供廣告客戶自己的應用程序可直接對Google AdWords Server主機進行廣告活動設定及管理。
·Google AJAX Search API - 提供Web Search功能以AJAX方式呈現,在您的網頁上以嵌入方式提供Google搜尋功能。
·Google Base Data API - 提供對於Google Data的數據存取功能
·Blogger Data API - 與Blogger服務整合,提供從您的網絡服務對Blogger.com的內容進行編輯的功能。
·Google Calendar Data API - 與Google Calendar服務整合,可以透過它進行事件更新,
·Google Data APIs - 提供針對Google Blogger, Google Base, Google Calendar等服務的數據交換功能。
·Google Desktop SDK - 提供建構在Google Desktop平臺上的開發工具,應用程序可以直接利用它來開發出桌面小工具。
·Google Earth KML - 利用KML定義的地理信息來與Google Earth服務整合。
·Google Gadgets API - 用來開發Google Gadget小工具,Gadget又分成Universal Gadget及Desktop Gadget,依您的需求使用不同的API來進行整合開發。
·Gmail Atom Feeds - 提供以Atom方式呈現Gmail信收件夾內容,將Gmail內容整合到您的網頁中以利快速閱讀。
·Google Checkout API - 與Google提供的電子商務在線付款機制整合。
·Google Web Toolkit - 提供以Java鏈接庫設計Web AJAX界面之功能。
·Google Groups Feeds - 提供搜尋網上論壇(Groups)並以Atom或RSS呈現結果
·Google Maps API - 提供與Google Map服務整合,在您的網頁中提供地圖服務,並與網頁數據密切結合,提供圖文並茂的呈現方式。
·Google News Feeds - 提供搜尋新聞(News)並以Atom或RSS呈現結果。
·Google Related Links - 取得Google搜尋結果後之類似網頁的內容。
·Google Search Appliance APIs - 提供了Search Protocol, Feeds Protocol, Authorization Protocol三種數據傳輸協議
·Google Search History Feeds - 提供個人化搜尋歷史記錄之查詢, 包括網頁, 新聞等內容的搜尋記錄。
·Google Sitemaps - 提供讓Google搜尋能更精確的方式,提高您的網站在搜尋結果的曝光率。
·Google Talk XMPP - 提供與Google Talk之間訊息傳遞的通訊協議。在您的應用程序中需要提供與Google Talk相互聯繫或狀態查詢時可使用。
·Google Toolbar API - 提供Google工具列客製化按鈕的功能。
·Google SOAP Search API - 透過Web Services方式呼叫,將Google的搜尋功能整合到自己的應用程序或網頁中。

與開放源碼社羣的緊密結合

除了Google自己提供的工具套件及程序接口外,您也可以在開放源碼社羣中找到不少與 Google服務有關的項目。爲Google如癡如狂的使用者不在少數,這些開放源碼提供了Google功能的延伸應用,也是您的不賴的另類選擇。
若您是Mozilla FireFox的愛用者,除基本功能已經提供了Google的搜尋功能列之外,您還可以下載安裝針對Google量身設計的擴充套件(Extension)來使用,像是CustomizeGoogle等。

結語

在Web 2.0的世界中,Google只是其中一個比較顯著且知名的例子,其它像是Amazon, Delicious, Cocomment等許多網絡服務平臺,也都提供Web API的機制。單純來自一種數據來源已經無法滿足現今網絡使用者的需求,未來的服務將是以軟件混搭(Mashup)的概念(意即Web應用系統整合多種不 同的信息來源)來發展,信息的整合勢必是未來的趨勢。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章