问题标签 [servant]

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 投票
2 回答
357 浏览

haskell - 解密仆人库中的 DataKind 类型提升

我正在尝试阅读servant库的教程,这是一个类型级的Web DSL。该库广泛使用语言扩展。DataKind

在该教程的早期,我们发现以下行定义了 Web 服务端点:

我不明白在类型签名中包含字符串和数组意味着什么。我也不清楚'前面的勾号()是什么意思'[JSON]

所以我的问题归结为字符串和数组的类型/种类是什么,当它变成 WAI 端点时如何解释


作为旁注,在描述时的一致使用NatVect我们DataKinds留下了一组令人沮丧的有限示例,以便在尝试理解这些内容时查看。我想我已经在不同的地方至少读过这个例子十几次了,但我仍然觉得我不明白发生了什么。

0 投票
1 回答
354 浏览

haskell - 在 Haskell 中获取网页的状态码

我试图找到一种方法来检查 Haskell 中是否存在网页。服务器仅是 HTTP2 / HTTPS,我正在尝试检查该页面是否存在于服务应用程序中。

是否有任何带有良好文档的 Haskell 包来检查状态码是 200 还是 404?并使用强大的 HTTPS 和 HTTP2 服务器?

这是我目前使用 http-conduit 所拥有的,但我收到了奇怪的异常(TlsExceptionHostPort (HandshakeFailed (Error_Protocol ("expecting server hello, got alert : [(AlertLevel_Fatal,HandshakeFailure)]",True,HandshakeFailure))) "thibaud.dauce .fr" 443 和 StatusCodeException)。

0 投票
1 回答
285 浏览

mongodb - 在 Servant 中持久化 MongoDB

我尝试persistent在 Servant webservices API 中使用 MongoDB。下面是我的型号代码(Model.hs

以及访问数据库的代码:

这给了我一个错误:

我理解这个错误,但我认为库应该自动生成从Document -> User.

为此生成的函数是什么?

0 投票
1 回答
312 浏览

haskell - 使用带有仆人的自定义阅读器 Monad 进行身份验证

受基本身份验证保护的 API

支持类型的处理程序AuthData -> Handler a

我有一组处理程序:

它在 AuthMonad 中运行,这是一个 ReaderT,其上下文部分由 AuthData 构建。使用enterand AuthMonad :~> Handler,我可以获得Server API类型的支持处理程序AuthData -> AuthMonad,但我真正想做的是使用AuthData参数作为 runReaderT 的环境。

我对正在进行的类型巫术了解得不够多,enter无法理解如何做到这一点。有任何想法吗?

0 投票
1 回答
94 浏览

haskell - 从servant-0.4.4.7 迁移到servant-0.7.1

我使用了servant-0.4.4.7. 以下是我的模型代码:

这段代码有效。但是当我使用时servant-0.7.1,我得到了错误:

我知道存在类型不匹配,但如何解决它,我无法理解。

谢谢!

0 投票
1 回答
172 浏览

ajax - 在Servant中使用ajax

我将 Haskell 与servant-0.7.1实现服务器一起使用。以下是我的源代码:

型号User

使用了testin curl,如下图所示。

一切正常。将数据添加到数据库中。但是当我ajax从后端使用时,如下图所示。

我得到一个错误!

调试器检查对象objectData。好的(Object {userFam: "qqq", userIm: "www", userOt: "eee", userEmail: "rrr", userLogin: "ttt"…})。我不明白发生了什么事。

0 投票
2 回答
414 浏览

haskell - 将 failWith 与 Servant 和自定义 monad 堆栈一起使用

我将Servant与自定义 monad 堆栈一起使用:

现在,在许多处理程序中,我只需要从 db 获取一些数据(持久)并对其采取行动,所以我得到了:

事实证明,当从 db 获取时,您一定会使用Maybe,并且通常当 Maybe 是 时Nothing,您只想抛出错误,以便 Servant 服务器将其转换为正确的 HTTP 响应。这使我发现了Control.Error.Util(!?) :: Applicative m => m (Maybe a) -> e -> ExceptT e m a帮助者。所以我尝试了以下操作:

但这不会编译,!?这里的结果是ExceptT ServantErr m0 (Entity SomeEntity)但我不再使用这种处理程序类型,它需要AppHandler (Entity SomeEntity). 我如何将这样的值转换回我的处理程序类型?

0 投票
1 回答
414 浏览

web-services - Haskell Servant - 有没有办法组合 API 类型?

我知道这不是有效的语法,但是有没有办法在仆人中完成这样的事情?

换句话说,组合 API。在 Spock 中,我可以通过 monadic 路线构造来做到这一点,但我不确定如何在仆人中做到这一点。

这样我就可以跨 API 重用共享路由。使用它的另一个原因是某些类型不能与客户端生成器一起使用,例如 Raw。

0 投票
1 回答
133 浏览

haskell - 带有 FromJSON 约束的类型变量的仆人客户端

我正在尝试使用服务库创建与 Web API 的客户端绑定。我希望能够发送任何 JSON 对象。

现在,当我尝试编译它时,出现错误消息:

如何参数化我的MyAPI,clientProxy接受类型变量?

0 投票
4 回答
776 浏览

haskell - 仆人服务器发送事件支持

如何为服务方定义服务器发送事件 (SSE) 端点。文档似乎没有涵盖这种情况。

如果 Servant 不是为实时用例设计的,哪个 Haskell 服务器框架支持 SSE?