parameterMap
Description
Extracts all parameters at once as a Map[String, String]
Map<String, String>
mapping parameter names to parameter values.
If a query contains a parameter value several times, the map will contain the last one.
See also When to use which parameter directive? to understand when to use which directive.
Example
- Scala
-
source
val route = parameterMap { params => def paramString(param: (String, String)): String = s"""${param._1} = '${param._2}'""" complete(s"The parameters are ${params.map(paramString).mkString(", ")}") } // tests: Get("/?color=blue&count=42") ~> route ~> check { responseAs[String] shouldEqual "The parameters are color = 'blue', count = '42'" } Get("/?x=1&x=2") ~> route ~> check { responseAs[String] shouldEqual "The parameters are x = '2'" }
- Java
-
source
import static akka.http.javadsl.server.Directives.complete; import static akka.http.javadsl.server.Directives.parameterMap; final Function<Entry, String> paramString = entry -> entry.getKey() + " = '" + entry.getValue() + "'"; final Route route = parameterMap(params -> { final String pString = params.entrySet() .stream() .map(paramString::apply) .collect(Collectors.joining(", ")); return complete("The parameters are " + pString); }); // tests: testRoute(route).run(HttpRequest.GET("/?color=blue&count=42")) .assertEntity("The parameters are color = 'blue', count = '42'"); testRoute(route).run(HttpRequest.GET("/?x=1&x=2")) .assertEntity("The parameters are x = '2'");