大多数Haskell Web应用程序框架似乎都专注于在服务器上进行大量工作(模板,表单等)。但是,大多数其他人似乎都在客户端上移动越来越多的应用程序,并通过狭窄的REST API与服务器通信。
我正在寻找一个主要在客户端运行的网络应用程序。我想将客户端基于Backbone.js(或类似),并使用JavaScript模板库在客户端上完全进行HTML模板化。
我想在Haskell中实现服务器端,最好使用Snap框架。
有没有人尝试过这种方式使用Snap框架?如何在Snap中使用GET,POST,PUT,DELETE方法实现基本REST API?或者我应该为Snap服务器寻找更简单的东西吗?
答案 0 :(得分:4)
我有一个基于Snap的网站,它使用了相当多的客户端代码。它可能不像你想的那么广泛,但它肯定证明了这一点。我建议将javascript作为静态文件提供。您可以使用Snap的method函数过滤HTTP方法。以下是关于如何使用它的一个想法:
fooHandler = method GET getter <|>
method POST poster <|>
method DELETE deleter
where
getter = ...
poster = ...
deleter = ...
然后您只需为其添加路线即可使用此功能:
addRoutes [ ("foo", fooHandler), ... ]