首先,我对 Haskell 很陌生——但我必须说,自从我开始使用它以来,我就爱上了它。我已经完成了大量的 C、Java、python 和 perl。 Haskell 肯定在我身上成长。不久前,我在 perl/python 中为我的一个个人项目编写了一个 Web 应用程序/服务——我想知道我是否可以将它作为一个有趣的项目移至 haskell 并做一些 haskell 黑客操作来看看它是如何演变的。
我知道 haskell 中有一些出色的 Web 应用程序框架。我想做的是有一个用haskell编写的服务,它将以不同格式(SOAP、REST-xml、REST-json)响应数据。我会使用 javascript 来构建 DOM 等。所以我的问题是有没有可以用来即时转换数据格式的库?或者给定场景,你将如何在 haskell 中进行操作?
自 2008 年以来我没有玩过这个项目,我最初的想法是使用 java 社区的 apacheCXF 并用 java 编写代码。但我很想在haskell中做到这一点。请问有什么提示吗?
最佳答案
我用 Happstack 写过类似的东西。
我所做的是创建一个类型来表示我的 Web 应用程序的所有可能响应。
data AppResponse = Foo String Int | Bar [String] | etc
然后编写我的处理程序来返回这种类型的值:
home :: ServerPart AppResponse
user :: UserId -> ServerPart AppResponse
ETC,
然后我编写了可以以不同格式呈现响应的函数:
jsonResponse :: AppResponse -> JSON
xmlResponse :: AppResponse -> XML
等等
然后是一个简单的过滤器,查看
Accept
header 并决定使用哪些转换函数。这种方法很好,因为:
newFormatResponse :: AppResponse -> NewFormat
. AppResponse
键入详细信息每个可能的响应,因此您不必搜索所有代码来找出甚至可能的响应。 关于haskell - Haskell 中的 Web 服务框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6663888/