在 Scala 中使用 Finagle/Finch 在正文中发送数据时出错
Errors when sending data in body using Finagle/Finch in Scala
我正在使用 Finagle/Finch,但出现此错误:
diverging implicit expansion for type argonaut.DecodeJson[A] starting
with method MapDecodeJson in trait DecodeJsons
diverging implicit expansion for type argonaut.DecodeJson[V] starting
with method MapDecodeJson in trait DecodeJsons
not enough arguments for method body: (implicit d:
io.finch.Decode.Aux[A,CT], implicit ct:
scala.reflect.ClassTag[A])io.finch.Endpoint[A]. Unspecified value
parameters d, ct.
对于此代码:
def sendPost(db: CommDb): Endpoint[String] =
post("posts" :: body.as[String]) { s: String =>
Ok("success")
}
我不知道如何解决这个问题。
body
API 已在 Finch 0.11 中更改。只需将您的 body
调用更改为 body[CT, Foo]
(其中 CT
是内容类型),您应该会编译它。一件事:String
body 是一种特殊情况,因此您可能想使用 stringBody
(无类型参数),因为 body
偏向于使用给定的 [= 解码有效负载21=]解码器。
scala> import io.finch._, io.finch.circe._
scala> s(Input.post("/").withBody[Application.Json](Map("foo" -> "bar"))).awaitValueUnsafe()
res2: Option[String] = Some({"foo":"bar"})
我正在使用 Finagle/Finch,但出现此错误:
diverging implicit expansion for type argonaut.DecodeJson[A] starting
with method MapDecodeJson in trait DecodeJsons
diverging implicit expansion for type argonaut.DecodeJson[V] starting
with method MapDecodeJson in trait DecodeJsons
not enough arguments for method body: (implicit d:
io.finch.Decode.Aux[A,CT], implicit ct:
scala.reflect.ClassTag[A])io.finch.Endpoint[A]. Unspecified value
parameters d, ct.
对于此代码:
def sendPost(db: CommDb): Endpoint[String] =
post("posts" :: body.as[String]) { s: String =>
Ok("success")
}
我不知道如何解决这个问题。
body
API 已在 Finch 0.11 中更改。只需将您的 body
调用更改为 body[CT, Foo]
(其中 CT
是内容类型),您应该会编译它。一件事:String
body 是一种特殊情况,因此您可能想使用 stringBody
(无类型参数),因为 body
偏向于使用给定的 [= 解码有效负载21=]解码器。
scala> import io.finch._, io.finch.circe._
scala> s(Input.post("/").withBody[Application.Json](Map("foo" -> "bar"))).awaitValueUnsafe()
res2: Option[String] = Some({"foo":"bar"})