I'm trying to define HttpService
that receives json and parses it to case class with json4s
library:
import org.http4s._
import org.http4s.dsl._
import org.json4s._
import org.json4s.native.JsonMethods._
case class Request(firstName: String, secondName: String)
HttpService {
case req @ POST -> Root =>
val request = parse(<map req.body or req.bodyAsText to JsonInput>).extract[Request]
Ok()
}
How can I get org.json4s.JsonInput
from req.body
or req.bodyAsText
?
I know that json4s
also have StringInput
and StreamInput
that inherits from JsonInput
for using with String
and InputStream
so I think that I need to convert req.body
to InputStream
or req.bodyAsText
to String
but I still do not understand how.
I'm new to Scala and I do not yet fully understand some concepts such as scalaz.stream.Process
.