4

有没有办法使用 Web 服务(在这种情况下为 REST)作为 Lift 应用程序的数据源?我可以找到许多使用 Lift 来提供 REST API 的教程/示例,但在我的情况下,数据托管在其他地方并作为 REST Web 服务导出。非常感谢指向 doc 的指针。

谢谢,杰夫

4

4 回答 4

2

这实际上与 Lift 无关。已经有很多不同的信息:

  • 已经建议的 HttpClient 库,
  • 调度Scala 库以访问 HTTP 服务
  • 有关如何以各种方式在 Scala 中缓存数据以备不时之需的信息

彻底考虑缓存,如果您的应用程序生成大量请求并且您负担得起缓存,这通常是一个不错的选择。缓存将使您实现许多目标:

  1. 减少响应时间,因为您不依赖远程服务(如果您进行同步数据处理)
  2. 避免拒绝服务,以防远程服务终止。否则,您的应用程序将生成许多套接字来读取数据并耗尽资源(套接字或线程或其他东西)
  3. 不要超过远程服务的 SLA,因为许多服务会限制您每单位时间允许执行的请求数。

所以你可以坐下来把这些东西放在一起,就是这样。

于 2010-04-12T13:54:32.650 回答
1

如果你真的想花哨,你可以为基于 REST 的数据源创建一个 Record 实现。已经有其中一个可以与 CouchDB 一起使用。使用 lift-couchdb 模块,与 CouchDB 的交互被抽象出来,您处理的只是 Scala 代码。这里有一个简短的 wiki 页面,其中包含有关如何开始使用 lift-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/

使用 Record 接口可以让您访问许多 Traits,您可以使用这些 Traits 以最少的代码编写来提供功能,例如创建 HTML 表单、提供基于生命周期的调用以及用于验证的简单挂钩。

于 2010-09-01T06:24:19.263 回答
0

我使用Dispatch(它是 HttpClient 的包装器)进行 REST 调用。看起来又漂亮又简单

于 2011-08-12T18:20:41.513 回答
0

我已经在HttpClient上放置了一个 scala 层,然后使用它。一段时间以来,我一直想把它放在 github 上。

于 2010-04-08T22:57:43.833 回答