Моей поддержки спрей JSon выглядит такАкка-клиент: не удалось найти неявное значение для параметра немаршалинга
object MarshallingSupport extends SprayJsonSupport {
implicit def json4sFormats: Formats = DefaultFormats
}
И в моем пути, я хочу, чтобы отобразить запрос на DTO
object Main extends App with AppConfig with BaseService with MainActorSystem {
val processor = system.actorOf(Props(), "processorActor")
val view = system.actorOf(Props(), "processorActor")
override protected implicit val executor: ExecutionContext = system.dispatcher
override protected val log: LoggingAdapter = Logging(system, getClass)
override protected implicit val materializer: ActorMaterializer = ActorMaterializer()
Http().bindAndHandle(routes(processor, view), httpInterface, httpPort)
}
trait BaseServiceRoute {
protected implicit def executor: ExecutionContext
protected implicit def materializer: ActorMaterializer
protected def log: LoggingAdapter
}
trait MainActorSystem {
implicit val system = ActorSystem("booking")
}
final case class CalculatePriceForRangeDto(unitId: Int, from: Long, to: Long)
trait PriceServiceRoute extends BaseServiceRoute {
implicit val timeout = Timeout(30 seconds)
import com.example.crudapi.utils.MarshallingSupport._
def customersRoute(command: ActorRef, query: ActorRef) = pathPrefix("price") {
post {
path("calculate") {
decodeRequest {
entity(as[CalculatePriceForRangeDto]) {
priceForRange => onComplete((query ? CalculatePriceForRange(
но Я получаю
Error:(32, 20) could not find implicit value for parameter um: akka.http.scaladsl.unmarshalling.FromRequestUnmarshaller[com.example.crudapi.http.routes.CalculatePriceForRangeDto]
entity(as[CalculatePriceForRangeDto]) {
^
Увидели все связанные с этим вопросы, но ничего не решили мою проблему. Странная часть заключается в том, что я попробовал шаблон Typesafe akka-dddd-cqrs, и он работает, тот же код.
Я пропустил что-то с неявным контекстом? Любые идеи о том, что это может быть?
какой класс DigestItemWire? Не иметь его в области. – Reeebuuk
@Reeebuuk Это просто пример класса case, который вы хотите сериализовать/десериализовать как 'CalculatePriceForRangeDto' в вашем случае. – expert
пробовал это, но я получаю сообщение об ошибке: type mismatch; найдено: (Int, Long, Long) => com.example.crudapi.http.routes.CalculatePriceForRangeDto требуется: (?,?,?,?,?,?) =>? Примечание: неявное значение CalculatePriceForRangeDtoFormat не применяется здесь, потому что идет после точки приложения и ему не хватает явного типа результата неявное вал CalculatePriceForRangeDtoFormat = jsonFormat6 (CalculatePriceForRangeDto.apply) – Reeebuuk