Scala とスプレー クライアントを使用して単純な HTTP クライアントを作成しようとしています。私は、 Spray docsにある例に基づいてクライアントを作成しています。
私の問題は、例が新しい暗黙のActorSystem ieを作成していることです
implicit val system = ActorSystem()
しかし、クライアントを再利用可能にし、新しい ActorSystem を作成しないようにしたいと考えています。
これが私のコードの要点です。
trait WebClient {
def get(url: String)(implicit system: ActorSystem): Future[String]
}
object SprayWebClient extends WebClient {
val pipeline: HttpRequest => Future[HttpResponse] = sendReceive
def get(url: String): Future[String] = {
val r = pipeline (Get("http://some.url/"))
r.map(_.entity.asString)
}
}
しかし、暗黙に関する2つのコンパイラエラーが発生しています
implicit ActorRefFactory required: if outside of an Actor you need an implicit ActorSystem, inside of an actor this should be the implicit ActorContext WebClient.scala ...
と
not enough arguments for method sendReceive: (implicit refFactory: akka.actor.ActorRefFactory, implicit executionContext: scala.concurrent.ExecutionContext, implicit futureTimeout: akka.util.Timeout)spray.http.HttpRequest => scala.concurrent.Future[spray.http.HttpResponse]. Unspecified value parameters refFactory, executionContext. WebClient.scala...
API 定義を変更するにはどうすればよいですか?