【发布时间】:2017-12-06 02:52:29
【问题描述】:
我有一个服务类,并且该服务有一个方法 getSomethingFromApi ,现在,我想要播放配置实例,以便我可以从 application.conf 中提取内容,以及播放 WSClient 以便我可以执行 http 调用。
这就是我希望我的服务的外观:
class MyApiService {
def getSomethingFromApi(whichApi: String): Future[ApiRes] = {
wsClient.url(configuration.getString(whichApi)).withHttpHeaders(("Content-Type", "application/json")).get.map { res =>
response.status match {
case Status.OK => // do something
case _ => throw new Exception
}
}
}
}
这是连接我的服务的 ServicesModule:
import com.softwaremill.macwire._
trait ServicesModule {
lazy val myService: MyApiService = wire[MyApiService]
}
我现在的问题是使用接线播放配置和 WSClient 实例的正确方法是什么..?因为目前我在我的服务中需要这些实例,但我没有它们,我应该如何以正确的方式做到这一点? 谢谢
【问题讨论】:
-
class MyApiService @Inject() (ws: WSClient) -
@erip 但是服务模块如何传递这个注入的依赖关系?它是macwire @Inject()吗?因为如果不是,它将在运行时进行评估,不是吗?我想让它保持纯 macwire 手册 di
标签: scala playframework playframework-2.0 macwire