大家都知道,Web 2.0 的精神是共享。共享的層面,並不僅止於使用者之間的資料、資訊共享;其實在應用開發層面,同樣需要開放共享,而 Web API 正是把一個網站所提供的服務功能,分享出去的窗口。Web API 就是我們說的 Web services,將資料放在 XML 欄位中,再透過結構簡單的 REST,或是較為複雜的 SOAP 信封,以 HTTP/HTTPS 協定來傳遞。
之前談 SOA 和 Web 2.0 時,提到 “mashup” 應用,也就是拿多個網站的 Web API,組合成一個創新的應用。如果沒有 Web API,mashup 應用的開發將會困難許多 — 因為拿不到乾淨、容易解析的 XML 資料,開發者只得被迫從原本是給瀏覽器消化的 HTML 網頁中,將所需的資料欄位辛苦地過濾、「刮鑿」出來(這個手段在 IT 界稱作 “screen-scraping”,起源於整合 terminal 模式的主機應用,如 3270, 5250)。
除了 mashup 之外,來看看最近逐漸成熟的 Flock 桌面應用。它以 Firefox 為根基,讓原本必須透過瀏覽器的 HTML/AJAX 使用界面,到各個網站去分別操作的事情,全都集中到一個單一的 Flock 底下 — 包括整理 Flickr, Photobucket 相簿、閱讀訂閱的 RSS feeds、把網頁鏈結加到 del.icio.us 書籤、撰寫、發表文章到 blog 網站等。如果不是歸功於各網站所提供的 Web API,Flock 不會有今天。
除了 Flock 之外,Songbird 是另一個拿 Firefox 來修改的桌面應用,目標是提供一個像 iTune 般,能夠瀏覽、播放、購買線上音樂,而且更開放的應用。
附帶一提,公開、共享精神給使用者帶來的價值,從 Firefox 身上可以看到最好的彰顯 — 由於 Firefox 的 open-source 特性,配上先天上具備 extension 的設計,推出至今短短的兩年間,已累積了成百上千的延伸套件,加上 Flock、Songbird、Cooliris 等這類以 Firefox 為基礎的加值桌面應用。
國外還有幾個可借鏡的手機服務,也是 Web API 的直接受惠者: MobSaver、TicTap、Smarter,是幾個提供 SMS 簡訊的商品資訊和比價服務。使用者只要將商品條碼編號 (UPC code),或書籍的 ISBN 碼,以簡訊方式來搜尋,便可以得到 EBay、Amazon 的商品資訊和目前的出價。有的甚至還能將搜尋歷史紀錄在 server 上,方便日後查詢。其他使用的功能包括: 同類型商品建議,價格變動自動通報。
說到這裡,看看國內號稱是 Web 2.0 的網站,有幾個提供 Web API?如果沒有,卻又冠上 Web 2.0 之名,服務的力道上是否有點為德不卒?為什麼與廣大網民生活愈來愈密切的競標網,不能提供 Web API,來孕育一批便利大眾的加值服務?
以上只不過就消費者領域的幾個創新應用例子,來說明 Web API 的威力。如果拿到企業領域,SOA 架構下各種可重組重用的 business services (往往以 Web services 方式提供),所能帶來的潛在價值、生產力的提升,同樣不可限量。
Update, 6/26/2006: 今天早上又想到,許多 Mac OS X Dashboard Widgets 和 Yahoo! Widgets(一些桌面的小工具),背後憑藉的也是氣象、照片等資訊源網站所提供的 Web API(Yahoo! Widgets 的科技併購自一家只有幾個人的小小公司 Konfabulator,它是在 Windows 作業系統中模仿實作 Mac OS X 10.4 Tiger 內建的 Dashboard Widgets 框架)。