问题标签 [haskell-spock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
540 浏览

rest - 如何在 Spock 中使用持久的 State monad?

我刚开始使用haskell,但我遇到了基本的“echo”REST 服务器的问题。

Spock 看起来是 REST 服务器的一个不错的起点,虽然我掌握了 State monad 的基础知识,但我在理解如何runState在 spock 代码周围放置 a 时遇到了问题。

这是我到目前为止的代码。

0 投票
1 回答
158 浏览

haskell - forM_ 块内的 Blaze-html 类型错误

我刚刚开始使用 Spock、persistent 和 blaze-html 进行 Haskell Web 开发。

在我拥有的一条路线中,我想加载我选择的表中的每一行。我做这样的事情:

loadFlightInfos有类型:

和 getSeatIdByFlight:

我从 Spock 的博客示例应用程序中复制runSQL,它是这样的:

我得到的类型错误:

我仍然不明白这种类型错误,因为我知道runSQL它是从持久化到 Spock 的包装器,如果我只是想输出 HTML,为什么它不能通过类型检查?

如何解决此类型错误?

0 投票
1 回答
133 浏览

haskell - 如何修改 inputText 以使用 inputCheckbox

我正在尝试做类似的事情对于字符串列表中的元素,我旁边有一个复选框,并确定哪个复选框被选中。使用来自互联网的示例,我能够运行一个示例

但是,在函数 renderForm 中,当我将 inputText 更改为inputCheckbox "True" 之类的内容时,我收到错误True does not exist。我找不到使用 inputCheckbox 的示例,我希望有人能帮助我调整过滤字符串,以便在它旁边显示复选框,并且我可以正确运行表单。另外,在我发布的上一个链接中,我不知道函数inputCheckBox是什么,因为我只能找到inputCheckbox。也许这是一个过时的功能?

0 投票
0 回答
130 浏览

java - 如何使用 Java 类将 Web 服务器响应反序列化为 Haskell 对象

我的 Haskell 代码需要调用 Java Web 服务器。Web 服务器将发送一个序列化的 Java 对象作为响应。我有已编译的 Java 类,但不确定如何在 Haskell 中使用它。有没有办法将响应正确反序列化为 Haskell 对象,而无需将 Java 类复制并粘贴到 Haskell 类型中?

0 投票
1 回答
317 浏览

haskell - 如何在 Spock 请求处理程序中使用“IO 字符串”?

我有以下函数可以生成 1024 的倍数的随机字符串:

我想使用 Spock 将其公开给网络,例如:

但这是不正确的,因为最里面的do-block 产生一个IO b0,而不是 Spock 的预期类型:

如何在 Spock 获取请求处理程序中使用我的IO-driven 随机字符串函数?

0 投票
0 回答
571 浏览

web-services - Haskell Spock:如何获取原始请求正文

Web.Spock.Action中的body函数应该返回原始请求正文。但是,它似乎并没有这样做:

Acurl --data 123123 localhost:3000/test什么都不返回,并且trace输出确认这b是一个空字符串。

等效的Scotty应用程序运行良好:

我绝对看不出我做错了什么。任何输入将不胜感激!

更新:上面的例子将适用于Spock >= 0.12.0.0

0 投票
2 回答
1389 浏览

json - postgres-simple - 没有因使用“查询”而产生的(ToRow Int)实例

我是haskell的新手,真的很难过。但这扩展了我的想法,所以我们开始吧。我正在尝试运行一个非常简单的 Web 服务器来查询 Postgres DB 并应将结果作为 JSON 返回。

查询非常简单:“Select id,data from MYTABLE where id = 1”

但是 haskell 的类型系统现在正在杀死我,我的行为的最终类型不匹配。我正在使用SpockPostgreSQL-Simple作为组合。

大多数教程对于我想做的事情要么简单,要么困难。我介于两者之间,错过了很多对 Haskell 的理解,我以前的很多问题我已经通过简单的复制和粘贴解决了,并且得到了一个简单的版本。

但是,一旦我尝试传递路由变量,我就失败了。这是我的工作版本。我的数据库表在这里称为“信封”,重要的调用是它说的get "json"

然后我尝试使用 lambda 函数传递信封 ID,为此我还需要将 PostgreSQL-Simple 更改query_query

我得到的错误说:

即使没有 lambda 函数,我也无法仅返回查询中的第一项。

完整的源代码可以在bitbucket上找到

我希望有人有时间在这里帮助我。感谢您的阅读。

0 投票
2 回答
204 浏览

haskell - GET Route ActionCtxT 错误中的 Haskell Spock IO

我尝试在 Web 应用程序( Spock Webserver)的路由定义中返回一个 uuid 。

路线很容易定义

现在我尝试nextRandomData.UUID.V1模块返回一个 uuid。该函数返回一个IO(Maybe UUID)值。

所以我想,因为我在 IO 中并与另一个 IO 一起工作,所以我必须简单地用 绑定值<-,如下所示:

但是编译器说不:

为什么会抛出该错误?我可以通过一个简单的打印示例轻松创建 uuid,但在 Spock 中我不明白 ActionCtxT 做了什么以及为什么我不能在其中执行 uuid IO。

0 投票
1 回答
280 浏览

haskell - 在 Hasekll Spock 中为静态资产或图像创建路由

我从其网站上获取了这个基本的 Spock 应用程序:

我有一个 html 页面,我可以像这样返回:

然而,一个 html 页面包含一些“img”标签。我如何需要创建一条路线才能解析图像?说,图像是文件夹“img”中的位置。

0 投票
2 回答
284 浏览

haskell - Spock 或 Wai/Warp 和 HTTPS

我有一个必须通过 HTTPS 访问的 Spock 网站。我该如何正确设置它?我认为它应该与 Wai/Warp 的方式相同,但仍然没有最新的信息。