web-dev-qa-db-fra.com

Comment lire les paramètres de requête dans akka-http?

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.

  1. Comment puis-je analyser les paramètres de requête get dans le routage de pulvérisation?

  2. Paramètres de requête pour les requêtes GET utilisant Akka HTTP (anciennement connu sous le nom de Spray)

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...
}
8
Siva Kumar

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)
      }
    }
  }
}
17
Selvaram G

Si vous souhaitez extraire query parameters en une seule pièce 

extract(ctx => ctx.request.uri.queryString(charset = Charset.defaultCharset)) { queryParams =>
   //useyourMethod()
}
0
Puneeth Reddy V

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)
  }
}
0
Didac Montero