标签: haskell-req

为什么参数可以接受类型类的任何构造,但不能有条件地构造其值?

我对 Haskell 还是很陌生,虽然不是编程,我一直在使用req 库来执行 HTTPS 请求。

为了保留一些通用性,将有两种类型的请求 - 一种用于创建文档(通过 HTTP POST),另一种用于更新文档(通过 HTTP PATCH,在updateMask参数中使用非空的 monoid )。

我可以从 if 推断出 HTTP 动词updateMask == mempty,但这不会编译,因为POSTPATCH是不同的data声明(尽管两者都作为 of 的第一个参数有效,req因为它们是HttpMethod.

getSaveEventRequestResponse :: Text -> Option Https -> Document -> IO IgnoreResponse
getSaveEventRequestResponse authToken updateMask document =
  runReq defaultHttpConfig $
  req
    (if updateMask == mempty
       then POST
       else PATCH)
    (https "test.example.com" /: "api" /: "projects" /: "myproject")
    (ReqBodyJson document)
    ignoreResponse $ …
Run Code Online (Sandbox Code Playgroud)

haskell types typeclass haskell-req

5
推荐指数
1
解决办法
75
查看次数

标签 统计

haskell ×1

haskell-req ×1

typeclass ×1

types ×1