Haskell和webframeworks

时间:2013-03-13 22:33:49

标签: haskell yesod haskell-snap-framework happstack

我开始开发一个应用程序(一些用于内部使用的枯燥的会计软件),并决定将其设置为基于Web的,因为这样可以一次性解决几个问题。

现在有了几个可供Haskell选择的webframeworks(happstack,yesod和snap),我仍然开始感到痛苦,不得不处理HTML,CSS和非常聪明的有线JavaScript。

嗯。

所以我认为可能会尝试使用所有AJAX方式并在CappuccinoSproutCore中执行UI。 (SEO在这里不是问题)。

但是现在我真的不需要一个完整的Web框架,例如上面三个中的一个,一个可以提供JSON或XML包装数据的HTTP服务器理论上应该足够了。

使用这三种中的任何一种现在还有意义吗?

最重要的是这种方法有多可行?

京特

2 个答案:

答案 0 :(得分:5)

我认为你的问题可能在这里“过于宽泛” - 所以我想这取决于你的要求。你可能不需要类型安全的URL,如果你所做的只是交换JSON,事实上Yesod书有一个JSON web service example,它避免使用Yesod本身,而是建立在底层的WAI包上

我不能对Snap和Happstack发表评论,因为我没有真正研究过它们,但还有其他选择。例如,Scotty在WAI之上添加了一个更简单的层,这对于构建基本服务器来说已经足够了,而没有太多的学习曲线。我还发现阅读Scotty的代码是建立对WAI理解的一种好方法,如果你正在开发更复杂的Yesod应用程序,它也非常有用。

答案 1 :(得分:2)

所有三大Web框架都有自己的Web服务器。 Yesod的服务器是warp。 Snap的服务器是snap-server。 Happstack的服务器是happstack-server。它们都具有相当低级别的API,适合您的应用程序。 Warp的API在wai中定义。 Snap服务器的API在snap-core中定义。 Happstack没有针对其API的单独包,但是它们在happstack-lite包中有一个简化版本。

我建议您查看API并使用您最喜欢的那个。