【问题标题】:Haskell and webframeworksHaskell 和网络框架
【发布时间】:2013-04-26 04:35:26
【问题描述】:

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

现在有了几个可供 Haskell 选择的网络框架(happstack、yesod 和 snap),我仍然开始再次感到不得不处理 HTML、CSS 和巧妙的有线 JavaScript 的痛苦。

嗯。

所以我到底想什么,不如尝试使用所有 AJAX 方式并在 CappuccinoSproutCore 中做 UI。 (搜索引擎优化在这里不是问题)。

但是现在我真的不需要一个完整的网络框架,比如上面三个之一,理论上一个可以提供 JSON 或 XML 数据的 HTTP 服务器就足够了。

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

最重要的是,这种方法的可行性如何?

君特

【问题讨论】:

  • 我很好奇您的会计应用程序是如何出现的。我也在用 Haskell 写一些会计应用程序。一旦我们将它发布到网络上,我会尝试在此处链接到它。

标签: haskell yesod haskell-snap-framework happstack


【解决方案1】:

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

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

【讨论】:

  • 嗨,卢克,因被指控过于宽泛而有罪。走这条路,即。仅将服务器用于 JSON 和 XML 而没有 UI 是我的第一次尝试,因此我也在寻求保证。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多