Я использую Akka HTTP в качестве клиента, чтобы выполнить запрос POST и проанализировать ответ. Я использую Play JSON и получаю следующую ошибку компилятора:
could not find implicit value for parameter um: akka.http.scaladsl.unmarshalling.Unmarshaller[akka.http.javadsl.model.ResponseEntity,B]
[ERROR] Unmarshal(response.entity).to[B].recoverWith {
Это зависимость, которую я добавил, чтобы использовать Play JSON вместо Spray:
"de.heikoseeberger" %% "akka-http-play-json"
Мое определение класса:
class HttpClient(implicit val system: ActorSystem, val materializer: Materializer) extends PlayJsonSupport {
и определение метода:
private def parseResponse[B](response: HttpResponse)(implicit reads: Reads[B]): Future[B] = {
if (response.status().isSuccess) {
Unmarshal(response.entity).to[B].recoverWith {
....
В импорте у меня есть:
import play.api.libs.json._
import scala.concurrent.ExecutionContext.Implicits.global
import de.heikoseeberger.akkahttpplayjson.PlayJsonSupport._
Мне кажется, что у меня есть необходимые последствия в области. Часть Marshal
имеет аналогичную логику (но с Writes
вместо Reads
) и прекрасно компилируется. Чего мне не хватает?