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

StackOverflow https://stackoverflow.com//questions/20011855

  •  20-12-2019
  •  | 
  •  

Question

Voici à quoi ressemble la section de code

    get{
      respondWithMediaType(MediaTypes.`application/json`){
          entity(as[HttpRequest]){
            obj => complete{


                println(obj)
                "ok"
            }
          }
      }
    }~

Je peux mapper la requête sur un objet spray.http.HttpRequest et je peux extraire l'URI de cet objet, mais j'imagine qu'il existe un moyen plus simple d'analyser les paramètres d'une requête get que de le faire manuellement.

Par exemple, si ma demande d'obtention est

 http://localhost:8080/url?id=23434&age=24

Je veux pouvoir obtenir l'identité et l'âge de cette demande

Était-ce utile?

La solution

En fait, vous pouvez faire beaucoup mieux.Dans le routage, il y a deux directives : parameter et parameters, je suppose que la différence est claire, vous pouvez également utiliser quelques modificateurs : ! et ?.En cas de !, cela signifie que ce paramètre doit être fourni sinon la requête va être rejetée et ? renvoie une option, vous pouvez donc fournir un paramètre par défaut dans ce cas.Exemple:

val route: Route = {
  (path("search") & get) {
    parameter("q"!) { query =>
      ....
    }
  }
}

val route: Route = {
  (path("search") & get) {
    parameters("q"!, "filter" ? "all") { (query, filter) => 
      ...
    }
  }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top