API調(diào)用太麻煩 eBay推出Web查詢語言
eBay的ql.io開發(fā)者Subbu Allamaraju在他的博客中介紹了ql.io,“ql.io減少了編寫多個HTTP APIs請求的代碼量,并且能夠減少網(wǎng)絡的請求延遲和帶寬的占用。”
隨著ql.io的推出,eBay也加入到了大型網(wǎng)絡服務提供商的軟件開發(fā)陣營,這其中還包括Twitter的Storm數(shù)據(jù)流分析工具,LiveJournal的memcached數(shù)據(jù)緩存軟件,F(xiàn)acebook的Scribe日志工具集,以及Google的SPDY HTTP增強工具。
對于Web網(wǎng)站和Web Apps的開發(fā)者來說,編寫復雜的網(wǎng)絡處理代碼通常是一件非常痛苦的事情,Allamaraju曾在他的博客中寫過一篇《APIs are a pain》的文章介紹了相關(guān)的問題。
Allamaraju以一個客戶端程序為例進行了說明:一個商業(yè)網(wǎng)站的客戶端程序需要將商品的相關(guān)數(shù)據(jù)陳列在一個列表中,這需要使用三個獨立的API請求,一個處理商品搜尋,一個用于獲取商品的詳細信息,一個用于收集用戶的評論。他表示,編寫大量的APIs對程序員來說是一件非常繁重的工作,并且頻繁的API調(diào)用往往會產(chǎn)生許多不必要的網(wǎng)絡帶寬,同時對機器的處理能力也是一種浪費。
ql.io幫助開發(fā)者將多個請求合并為一個請求,Web服務器通過分析收到的請求將結(jié)果打包在一起返回給客戶端。
ql.io是一個事件驅(qū)動語言,它松散地依賴于SQL數(shù)據(jù)庫和JSON(JavaScript Object Notation)數(shù)據(jù)交換格式。要運行ql.io的腳本,需要在服務器端安裝一個node.js JavaScript解釋器。
Allamaraju在GitHub在線代碼庫中共享了ql.io的源碼,還增加了一些使用示例。
原文:http://www.webapptrend.com/2011/12/760.html
【編輯推薦】