gpt4 book ai didi

haskell - Haskell 中的 Web 服务框架

转载 作者:行者123 更新时间:2023-12-04 00:55:06 26 4
gpt4 key购买 nike

首先,我对 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 并决定使用哪些转换函数。

这种方法很好,因为:
  • 大部分代码不需要了解响应格式(xml、json 等)
  • 要添加新格式,您只需编写新函数,如 newFormatResponse :: AppResponse -> NewFormat . AppResponse键入详细信息每个可能的响应,因此您不必搜索所有代码来找出甚至可能的响应。
  • 关于haskell - Haskell 中的 Web 服务框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6663888/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com