在scala应用程序中使用WSClient(播放框架)

时间:2016-08-24 00:51:45

标签: scala playframework sbt ws-client

我不确定我是否遗漏了一些非常基本的内容,但我无法弄清楚如何使用WSClient。我已经看到所有的例子都说你需要将WSClient作为依赖项传递给一个类,我已经完成了,但是当我运行程序时,我实际上将什么传递给我的类?

例如,我的班级签名是:

class myClassName(ws: WSClient)

但是当我实例化该类时,我实际传递给它的是什么?我也很高兴忽略了Play!框架的东西,如果这使它更容易,只需使用SBT运行它(我更熟悉)。

1 个答案:

答案 0 :(得分:3)

目前还不清楚你可能在哪里使用WSClient,但建议您让Play框架“管理”客户端的实例。当您实例化您的应用程序时,它会被注入:

class Application @Inject() (ws: WSClient) extends Controller {
  ...
}

这意味着...内部您可以访问ws作为值。您可以使用它实例化myClassName

class Application @Inject() (ws: WSClient) extends Controller {
  val myclass = myClassName(ws)  // passes the injected WSClient to myClassName
}

或者您可以编写一个返回WSClient的函数,因此代码的其他某些区域可以调用您的Application对象来获取它的对象处理程序。

但关键是Application对象因注入而获得该句柄,这是@Inject注释。

如果您需要生成WSClient并手动管理,则有good instructions here。建议的实施依赖于Play!框架库,但不依赖于Application