如何在Backbone.js中使用Haskell Snap

时间:2012-05-29 16:33:15

标签: rest haskell backbone.js haskell-snap-framework

大多数Haskell Web应用程序框架似乎都专注于在服务器上进行大量工作(模板,表单等)。但是,大多数其他人似乎都在客户端上移动越来越多的应用程序,并通过狭窄的REST API与服务器通信。

我正在寻找一个主要在客户端运行的网络应用程序。我想将客户端基于Backbone.js(或类似),并使用JavaScript模板库在客户端上完全进行HTML模板化。

我想在Haskell中实现服务器端,最好使用Snap框架。

有没有人尝试过这种方式使用Snap框架?如何在Snap中使用GET,POST,PUT,DELETE方法实现基本REST API?或者我应该为Snap服务器寻找更简单的东西吗?

1 个答案:

答案 0 :(得分:4)

我有一个基于Snap的网站,它使用了相当多的客户端代码。它可能不像你想的那么广泛,但它肯定证明了这一点。我建议将javascript作为静态文件提供。您可以使用Snap的method函数过滤HTTP方法。以下是关于如何使用它的一个想法:

fooHandler = method GET getter <|>
             method POST poster <|>
             method DELETE deleter
  where
    getter = ...
    poster = ...
    deleter = ...

然后您只需为其添加路线即可使用此功能:

addRoutes [ ("foo", fooHandler), ... ]