问题标签 [http4s-circe]
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.
scala - 使用 Http4s 的 Circe 编码器和解码器
我正在尝试使用 http4s、circe 和 http4s-circe。
下面我尝试使用 circe 的自动推导功能。
我得到这两个编译器错误的多个实例
json - 在 http4s 上运行时,使用 Circe 将递归数据结构编码为 Json
我正在构建一个非常简单的服务,它应该返回一个通过递归案例类定义的树状结构:
但由于某种原因,我不断收到以下编译错误:
错误:(24, 70) 找不到参数编码器的隐含值:io.circe.Encoder[Seq[com.ansarada.ds.docviewer.server.Main.Node]]
隐式验证节点编码器:EntityEncoder[Seq[Node]] = jsonEncoderOf[序列[节点]]错误:(24, 70) 方法 jsonEncoderOf 的参数不足:(隐式编码器:io.circe.Encoder[Seq[com.ansarada.ds.docviewer.server.Main.Node]])org.http4s.EntityEncoder[Seq[ com.ansarada.ds.docviewer.server.Main.Node]]。未指定值参数编码器。隐式验证节点编码器:EntityEncoder[Seq[Node]] = jsonEncoderOf[Seq[Node]]
代码被编译,一旦我删除了一个子元素定义并将一个节点变成一个平面对象:
任何人都可以帮我为嵌套孩子的情况定义正确的 Json 编码器吗?
完整代码:
scala - HttpService 上的 Await.result
我有一个带有 http4s 0.15.16a 和 slick 3.2.1 的 scala 项目,步骤如下:
- 通过 rest call 接收 ID
- 将 ID 传递给以 Future 响应的 MySlickDAO
- 在 MySlickDAO 返回的 Future 上调用 Await.result(res, Duration.Inf)
- 创建 json
问题是我使用了 Await.result ,这是不好的做法,有更好的解决方案吗?
这里的代码:
}
circe - Http4s EntityDecoder 不是为简单案例类自动派生的
我收到此错误:
对于以下案例类:
遇到POST
代码错误:
具有以下POST
主体:
我认为当身体被转换为时会发生这种UserProfile
情况req.as[UserProfile]
!
但是,这是一个普通的案例类,EntityDecoder
应该是自动派生的!我知道akka-http
会!
有什么想法/建议吗?
请注意: Http4sVersion = "0.18.0-M4"
和circe version "0.9.0-M1"
scala - 将 json 正文添加到 http4s 请求
本教程展示了如何创建 http4s 请求:https ://http4s.org/v0.18/dsl/#testing-the-service
我想将此请求更改为 POST 方法并使用 circe 添加文字 json 正文。我尝试了以下代码:
这给了我一个类型不匹配的错误:
我理解错误,但我不知道如何转换io.circe.Json
为EntityBody
. 我见过的大多数示例都使用EntityEncoder
,它不提供所需的类型。
我怎样才能转换io.circe.Json
成一个EntityBody
?
scala - Need help decoding following json with Circe
I'm trying to parse nested JSON object with Circe library. I would like to map it to flat case class ignoring some of the fields.
result:
Either[io.circe.Error,Parent] = Left(DecodingFailure(Attempt to decode value on failed cursor, List(DownField(name))))
scala - Scala:http4s 为在 curl/requests 中工作的相同请求提供 401 Unauthorized
我尝试使用以下代码http4s v0.19.0
:
我收到以下错误:
不仅如此,我的程序从未退出(我是否必须关闭某些客户端!?)即使我连接了一个日志中间件,它也从未打印过请求
我接下来尝试了@li-haoyi 的请求库,没有返回错误:
上面的代码同样适用,uri
所以baseToken
不可能是我的令牌是错误的。可以肯定的是,我尝试了 curl:
此问题也发生在http4s v0.18.19
(即使使用显式Json
和接受标头):
所以我的问题是:
- 为什么两者都
requests
工作curl
但http4s
给我 401 相同的请求? - 为什么我的
http4s
版本永远不会退出? - 为什么请求记录器中间件不记录请求?
scala - 值解码不是 org.http4s.AuthedRequest 的成员
我使用http4s
的是 Circe 0.18 版,当我使用以下代码value decode is not a member of org.http4s.AuthedRequest
将 json 正文转换为 a 时出现错误:case class
AuthedService
scala - 使用 http4s 获取请求中的 403 禁止错误
我在 http4s 中做一个简短的任务,很长一段时间以来我都收到了 403 错误,这很难调试。我的代码是:
json - Circe asJson 不编码抽象基类的属性
假设我有以下抽象基类:
它由以下具体案例类扩展:
然后我尝试使用如下代码获取 JSON 字符串:
如您所见,_id: String
继承自的属性RecordObject
丢失了。我希望内置编码器应该可以很好地用于这个用例。我真的需要自己建造吗?