Scala, ZIO, Json - как десериализовать ответ circe json?

У меня странная проблема с десериализацией из внешнего сервиса. У меня есть некоторая библиотека, где я вызываю метод и передаю параметры. Этот метод всегда возвращает . Внутри этой библиотеки происходит какое-то волшебство, она соединяется с другим сервисом, получает ответ и возвращает его мне. Я создаю простой пример, в котором я вызываю этот метод:

      for {
  response <- library.someMethod(firstParam, secondParam).map(value => value.code).mapError(error => showError(error))
} yield response

ErrorиValueздесьzio.IO[Error, Value]некоторые пользовательские объекты. Когда я запустил этоfor comprehensionкод, я получил ошибку, связанную с сериализацией:

      The Either on which value was invoked was not defined as a Right; it was Left(sttp.client3.DeserializationException: expected json value got 'Intern...' (line 1, column 1)).
org.scalatest.exceptions.TestFailedException: The Either on which value was invoked was not defined as a Right; it was Left(sttp.client3.DeserializationException: expected json value got 'Intern...' (line 1, column 1)).
    at org.scalatest.EitherValues$Valuable.value(EitherValues.scala:211)

Я не уверен, нужны ли мне дополнительные декодеры или я должен что-то изменить в коде понимания, чтобы десериализовать это значение и ошибку? Можно ли десериализовать ответ и правильно принять значение?

0 ответов

Другие вопросы по тегам