您知道如何将自定义对象作为zio-http响应返回吗?我创建了一个简单的类:
final case class CustomerResponse(id: Int, name: String, age: Int)
object CustomerResponse {
implicit val responseCodec: Codec[CustomerResponse] = deriveCodec[CustomerResponse]
}现在,我想将这个CustomerResponse作为Http响应对象返回:
Http.collect[Request] { case Method.GET -> !! / "customer" => // Response.as CustomerResponse我试着用
Response.json(CustomerResponse(1, "a", 1))但它不起作用。你知道我该怎么做吗?
发布于 2022-09-02 00:45:59
问得好。
我认为您可以使用ZIO Json来完成这一任务。我使用的是ZIO 2,它似乎把一些事情搞砸了。
case class CustomerResponse(id: Int, name: String, age: Int)
object CustomerResponse {
implicit val encoder: JsonEncoder[CustomerResponse] = DeriveJsonEncoder.gen[CustomerResponse]
}
object CustomerServer extends ZIOAppDefault {
val app: HttpApp[Any, Nothing] = Http.collect[Request] {
case Method.GET -> !! / "customer" => Response.text(CustomerResponse(1, "w33b", 99).toJson)
}
override val run = Server.start(8090, app)
}https://stackoverflow.com/questions/73558146
复制相似问题