Мне нужно реализовать GET, где у меня может быть 5 разных параметров запроса, но запрос действителен, только если передан только один параметр.Я новичок в мире Scala.Каков наилучший подход?
В настоящее время я использую ParameterMap, но я открыт для предложений.
pathPrefix("cars") {
pathSingleSlash {
complete("/engines")
}
get {
parameterMap { params =>
if (params.size != 1) {
complete(StatusCodes.BadRequest)
} else {
params.foreach{
case ("asd", value ) //doSomething
case _ => complete(StatusCodes.BadRequest)
}
}
}
}
Это не работает в настоящее время, потому что:
Error:(39, 27) type mismatch;
found : Unit
required: akka.http.scaladsl.server.RequestContext => scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]
params.foreach{
Iможно решить, добавив полный в конце, но это не решение.Есть предложения?
Допустимые запросы
/app/cars/engines?capacity=1000
/app/cars/engines?type=benzin
Недопустимый запрос
/app/cars/engines?type=benzin&capacity=1000