我想在拒绝中读取参数值:
parameter(paramName.as[Int] ? default).recover[Tuple1[Int]]{
case Seq(MalformedQueryParamRejection(paramName, _, _)) =>
complete(invalidQueryParameterError(paramName, ????))
}
而不是???我想通过我们的param值
有什么想法吗?
答案 0 :(得分:0)
看一下akka.http.scaladsl.server.ParameterDirectives
,您可以看到如何通过handleParamResult
处理查询参数。似乎参数值没有传递,因此您实际上无法从Rejection对象中提取错误的值。
但是,Akka Http提供了一些关于查询参数处理结果的标准消息。我想到的唯一解决方案是在您确实需要参数值时解析该响应。但是,我不明白为什么你会这样做。
例如,here,当查询参数格式错误时,您可以看到Akka在拒绝时返回的预期消息。尽管如此,我认为依靠这些标准信息并不是一种好习惯。