Sto scrivendo un wrapper per un servizio web REST e mi piacerebbe avere delle API Scala fortemente tipizzate.È possibile avere una mappa [String, Any] con il nome e i valori dei parametri denominati in Scala?
Quello che segue è quello che sto facendo finora:
def getMentions(count: Option[Int] = None,
sinceID: Option[TweetID] = None,
maxID: Option[TweetID] = None,
trimUser: Option[Boolean] = None,
contributorDetails: Option[Boolean] = None,
includeEntities: Option[Boolean] = None) : List[Tweet] = {
val parameters = Map("count" -> count,
"since_id" -> sinceID,
"max_id" -> maxID,
"trim_user" -> trimUser,
"contributor_details" -> contributorDetails,
"include_entities" -> includeEntities)
/*
* Convert parameters, which is a Map[String,Any] to a Map[String,String]
* (Removing Nones) and pass it to an object in charge of generating the request.
*/
...
}
Questo approccio funziona, ma mi richiede di generare manualmente la mappa parameters
. Se potessi accedere a una mappa che rappresenta i parametri e i loro valori, quello che sto facendo sarebbe molto più pulito.
Sai se è possibile usarlo con sbt? – mariosangiorgio
L'ho capito. È sufficiente cambiare la scala versione 'scalaVersion: =" 2.10.0-RC2 "' e importare ' import language.experimental.macros' nei file usando la funzione – mariosangiorgio