cómo inyectar dependencias a un servicio con MacWire (play framework)
Tengo una clase de servicio, y el servicio tiene un métodogetSomethingFromApi
, ahora, quiero tener una instancia de Play Configuration para poder extraer cosas de la aplicación.conf, y un play WSClient para poder realizar llamadas http.
así es como quiero que se vea mi servicio:
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
}
}
}
}
y este es el ServicesModule que está conectando mis servicios:
import com.softwaremill.macwire._
trait ServicesModule {
lazy val myService: MyApiService = wire[MyApiService]
}
mi pregunta ahora es ¿cuál es la forma correcta de usar la configuración de juego de cableado y las instancias de WSClient ...? porque actualmente necesito esas instancias en mi servicio pero no las tengo, ¿cómo debo hacer esto de la manera correcta? Gracias