/ / spray-json: nemohol nájsť implicitnú hodnotu pre FromRequestUnmarshallar - json, scala, akka, spray, akka-http

spray-json: nemohol nájsť implicitnú hodnotu pre FromRequestUnmarshallar - json, scala, akka, spray, akka-http

Vytvárajem svoju prvú aplikáciu s AKKA-http. V súčasnosti používam spray-json na zápis objektu do json Keď som vytvoril požiadavku GET, všetko funguje dobre, ale skúšala som požiadavku POST a nasledujúca chyba ukazuje:

Error:(55, 26) could not find implicit value for parameter um: akka.http.scaladsl.unmarshalling.FromRequestUnmarshaller[nl.quintor.model.Employee]
entity(as[Employee]) { request =>

Toto je moja hlavná trieda:

object Main extends App with Routes {
implicit val system = ActorSystem("system")
implicit val executor: ExecutionContext = system.dispatcher
implicit val materializer: ActorMaterializer = ActorMaterializer()

override val slickboard = createSlickboard

Http().bindAndHandle(routes, httpInterface, httpPort)

private def createSlickboard: ActorRef =
system.actorOf(Slickboard.props(system), applicationName)
}
}

Definoval som moje trasy nasledujúcim znakom:

trait Routes extends CORSSupport with Protocols {
val slickboard: ActorRef

implicit val timeout = Timeout(5 seconds)

val routes =
corsHandler {
pathPrefix("employees") {
pathEnd {
get {
complete {
(slickboard ? GetAllEmployees).mapTo[HttpResponse]
}
}
}
} ~
pathPrefix("employee") {
path(IntNumber) { id =>
get {
complete {
(slickboard ? GetEmployeeById(id)).mapTo[HttpResponse]
}
} ~
post {
decodeRequest {
entity(as[Employee]) { request =>
complete {
request.toString()
}
}
}
}
}
}
}
}

Definoval som môj protokol rovnako ako odporúčaný sprej:

trait Protocols extends DefaultJsonProtocol {
implicit val employeeFormat = jsonFormat8(Employee.apply)
}

Trieda, ktorú sa snažím previesť na json, je nasledujúca:

case class Employee(ID: Int, firstname: String, lastname: String, street:  String, zipCode: String, city: String, phoneNumber: String, image: String)

Snažil som sa nájsť viaceré riešenia v pretečení zásobníka, ale žiadny z nich v skutočnosti nefunguje.

Mohol by mi niekto pomôcť s týmto problémom?

odpovede:

0 pre odpoveď č. 1

Mám podozrenie, že potrebujete

import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._