Je connais les bibliothèques akka-http marshal et unmarshal pour le type de classe lors du traitement de la requête. Mais maintenant, je dois lire les paramètres de requête de la requête GET
. J'ai essayé la méthode parameter()
et elle renvoie le type ParamDefAux
mais j'ai besoin de ces valeurs en tant que types de chaînes
Je vérifie la réponse aux questions ci-dessous.
mais je ne peux pas faire ce dont j'ai besoin.
S'il vous plaît dites-moi comment puis-je extraire les paramètres de requête de la demande. OR Comment puis-je extraire la valeur requise de ParamDefAux
URL de demande
http://Host:port/path?key=authType&value=Basic345
Obtenir la définition de la méthode
val propName = parameter("key")
val propValue = parameter("value")
complete(persistanceMgr.deleteSetting(propName,propValue))
Mes déclarations de méthode
def deleteSetting(name:String,value:String): Future[String] = Future{
code...
}
Pour une requête comme http://Host:port/path?key=authType&value=Basic345
try
path("path") {
get {
parameters('key.as[String], 'value.as[String]) { (key, value) =>
complete {
someFunction(key,value)
}
}
}
}
Si vous souhaitez extraire query parameters
en une seule pièce
extract(ctx => ctx.request.uri.queryString(charset = Charset.defaultCharset)) { queryParams =>
//useyourMethod()
}
Bien que le code soit moins explicite, vous pouvez également extraire tous les paramètres de la requête à la fois du contexte. Vous pouvez utiliser comme suit:
// Previous part of the Akka HTTP routes ...
extract(_.request.uri.query()) { params =>
complete {
someFunction(key,value)
}
}