2010-04-07 60 views
4

有沒有辦法使用Web服務(在這種情況下是REST)作爲Lift應用程序的數據源?我可以找到許多使用Lift來提供REST API的教程/示例,但在我的情況下,數據託管在別處並作爲REST Web服務導出。指向文檔非常感謝。使用REST webservices作爲Lift的數據源?

感謝, 傑夫

回答

0

我已經把一階層上HttpClient,然後使用它。我一直有意把這個放在github上一段時間。

+0

然後做到這一點。如果你添加代碼,我會在這裏給你一個輕鬆點! ;) – 2011-06-30 16:15:55

2

這實際上與Lift無關。有很多不同的信息已經:

  • HttpClient庫的建議已經,
  • Dispatch Scala庫,用於訪問HTTP服務,如何在斯卡拉以各種方式緩存數據
  • 信息你需要它的情況下

想一想徹底的緩存,如果你的應用程序產生了很多請求,並且你可以負擔緩存,通常是一個不錯的選擇。緩存可以讓你實現很多目標:

  1. 減少響應時間,因爲你不依賴於遠程服務(如果你做同步數據處理)
  2. 避免拒絕服務的情況下,遠程服務停止。否則,您的應用程序將生成許多套接字來讀取數據並耗盡資源(套接字或線程或其他內容)
  3. 不會超出遠程服務的SLA,因爲許多服務會限制您允許每個單元執行pefrorm的請求數的時間。

所以你可以坐下來把這些東西放在一起,就是這樣。

1

如果您確實想要看上,您可以爲基於REST的數據源創建一個Record實現。已經有一個與CouchDB一起工作的存在。使用lift-couchdb模塊,與CouchDB的交互被抽象出來,你處理的只是Scala代碼。有有指令的短wiki頁面如何開始使用升降機的CouchDB在這裏開始:

http://www.assembla.com/wiki/show/liftweb/CouchDB

相關的源代碼文件都可以在這裏找到:

http://github.com/lift/lift/tree/master/framework/lift-persistence/lift-couchdb/src/main/scala/net/liftweb/couchdb/

使用錄製界面使您可以訪問大量Traits,您可以使用這些Traits提供最少的代碼編寫功能,例如創建HTML表單,提供基於生命週期的調用以及容易驗證的鉤子。

0

我使用Dispatch(這是一個HttpClient的包裝)進行REST調用。看起來不錯,簡單