como injetar dependências em um serviço com o MacWire (play framework)
Eu tenho uma classe de serviço, e o serviço tem um métodogetSomethingFromApi
, agora, quero ter a instância play Configuration para poder extrair coisas do application.conf e um WSClient play para poder executar chamadas http.
é assim que eu quero que meu serviço seja:
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
}
}
}
}
e este é o ServicesModule que está conectando meus serviços:
import com.softwaremill.macwire._
trait ServicesModule {
lazy val myService: MyApiService = wire[MyApiService]
}
minha pergunta agora é qual é a maneira correta de usar as instâncias de configuração e WSClient do play play. Porque atualmente eu preciso dessas instâncias no meu serviço, mas não as tenho, como devo fazer isso da maneira certa? obrigado