не удалось найти неявное значение для параметра um: akka.http.scaladsl.unmarshalling.FromRequestUnmarshaller [класс] - PullRequest
0 голосов
/ 22 февраля 2020

Я новичок в akka http, и у меня возникают трудности с маршалингом и демаршалингом моего класса дел. Вот мой код

case class Event(uuid:String)

//main class 
class demo {

    val route: Route =

    post {
            path("create-event") {
              entity(as[Event]) { event =>
                  complete("event created")
                }
              }
            }
          }
    }

Я получаю ошибку времени компиляции в этой строке

entity(as[Event]) { event =>

 could not find implicit value for parameter um: akka.http.scaladsl.unmarshalling.FromRequestUnmarshaller[models.event.Event]            

Ответы [ 2 ]

2 голосов
/ 22 февраля 2020

Существует простой способ решить эту проблему. У akka-http-jackson есть реализация Request Unmarshaller.

sbt add lib:

"de.heikoseeberger"                         %% "akka-http-jackson"             % "1.27.0"

и затем в вашем коде

import de.heikoseeberger.akkahttpjackson.JacksonSupport._
0 голосов
/ 02 марта 2020

По умолчанию Akka-Http использует спрей для маршалинга и демаршалирования json, и ошибка в том, что не определен неявный конвертер, который используется для конвертации.

import spray.json.DefaultJsonProtocol
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport
import spray.json._

trait EventProtocol extends DefaultJsonProtocol {
  implicit val eventJsonFormat = jsonFormat1(Event)
}

class demo extends SprayJsonSupport with EventProtocol {
// your code
}

Подробные шаги приведены в akka -http документация

Надеюсь, это поможет !!

...