Akka Http/Circe解码结果
Akka Http / Circe Decode Result
如果我遗漏了一些简单的东西,我深表歉意,但我正在尝试将 Akka HTTP 与 Circe 一起使用(使用 akka-http-json Circe 模块)。我正在尝试在混合了 ErrorAccumulatingCirceSupport
特征的 ScalaTest 中检索 GET 调用的结果。调用成功通过,但我无法解组响应...这是一个非常简单的测试,但我只是不确定如何将结果解组到域对象列表中,例如:
Get("/path/to/getfoos").withHeaders(auth) ~> Route.seal(service.route) ~> check {
import io.circe.generic.auto._
status shouldEqual StatusCodes.OK
contentType should ===(ContentTypes.`application/json`)
val reports = responseAs[List[Foo]]
reports.size shouldBe 1
}
我得到的错误是:
Could not unmarshal response to type 'scala.collection.immutable.List' for `responseAs` assertion: de.heikoseeberger.akkahttpcirce.ErrorAccumulatingCirceSupport$DecodingFailures: DecodingFailure at [0]: CNil
如果有人能指出我的错误,我将不胜感激!
谢谢!
我不确定这是否是最好的方法,但我可以使用类似以下的方法 类 解组我的案例;如果有更好的方法,请告诉我!
val entity = responseEntity
val foos: List[Foo] = Unmarshal(entity).to[List[Foo]].futureValue
foos(0) shouldBe expectedFoo
foos.size shouldBe 1
(请注意,我还必须混合 org.scalatest.concurrent.ScalaFutures
特征)
如果我遗漏了一些简单的东西,我深表歉意,但我正在尝试将 Akka HTTP 与 Circe 一起使用(使用 akka-http-json Circe 模块)。我正在尝试在混合了 ErrorAccumulatingCirceSupport
特征的 ScalaTest 中检索 GET 调用的结果。调用成功通过,但我无法解组响应...这是一个非常简单的测试,但我只是不确定如何将结果解组到域对象列表中,例如:
Get("/path/to/getfoos").withHeaders(auth) ~> Route.seal(service.route) ~> check {
import io.circe.generic.auto._
status shouldEqual StatusCodes.OK
contentType should ===(ContentTypes.`application/json`)
val reports = responseAs[List[Foo]]
reports.size shouldBe 1
}
我得到的错误是:
Could not unmarshal response to type 'scala.collection.immutable.List' for `responseAs` assertion: de.heikoseeberger.akkahttpcirce.ErrorAccumulatingCirceSupport$DecodingFailures: DecodingFailure at [0]: CNil
如果有人能指出我的错误,我将不胜感激!
谢谢!
我不确定这是否是最好的方法,但我可以使用类似以下的方法 类 解组我的案例;如果有更好的方法,请告诉我!
val entity = responseEntity
val foos: List[Foo] = Unmarshal(entity).to[List[Foo]].futureValue
foos(0) shouldBe expectedFoo
foos.size shouldBe 1
(请注意,我还必须混合 org.scalatest.concurrent.ScalaFutures
特征)