试图了解要使用哪个 Play 库

Trying To Understand Which Play Library To Use

以下库有什么区别:

libraryDependencies += "com.typesafe.play" %% "play-ahc-ws-standalone" % "LATEST_VERSION"

libraryDependencies += "com.typesafe.play" %% "play-ahc-ws" % "LATEST_VERSION"

我只是想弄清楚哪个是正确的。我所做的是在一个单独的库中创建一个 Play 模块,我想将它注入到一个 Play 应用程序中。但是当我使用上面列出的第一个库时,它只提供了一个StandaloneWSClient。当我将其注入 Play 应用程序时,它无法将实现绑定到它。但是当我切换第二个库时,它提供了一个 WSClient,Play 应用程序可以找到一个实现来绑定,因为它已经有一个你可以在 build.sbt 定义中指定的实现,即 ws .

在 Play 项目中,您应该使用 play-ahc-ws,通常会像这样添加

libraryDependencies += ws

ws值来自Play的sbt插件

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.1")

另一方面,play-ahc-ws-standalone 本身就是一个 HTTP 客户端,可以在 Play 项目之外使用,只是如何使用,例如 scalaj-httprequests-scala 无法感知 Play 的 HTTP 客户端。

差异由 Play 2.6 Migration Guide 记录。