Scala 如何处理akka http中的多个无效查询参数?
我在路由中定义了查询参数,如下所示:Scala 如何处理akka http中的多个无效查询参数?,scala,akka,akka-http,Scala,Akka,Akka Http,我在路由中定义了查询参数,如下所示: parameters(('modifiedDate.as[String].?, 'active.as[Boolean].?)) { (modifiedDate, active) => 我有以下拒绝处理程序: RejectionHandler.newBuilder() .handle { case MalformedQueryParamRejection(param, _, _) => param match {
parameters(('modifiedDate.as[String].?, 'active.as[Boolean].?)) { (modifiedDate, active) =>
我有以下拒绝处理程序:
RejectionHandler.newBuilder()
.handle { case MalformedQueryParamRejection(param, _, _) =>
param match {
case "modifiedDate" => ...
case "active" => ...
}
}
问题是,格式错误的QueryParamRejection只与第一个错误匹配,因此如果两个查询参数都被传递,并且都不正确:
some-endpoint?modifiedDate=invalid&active=invalid
只有第一个错误才会通知客户
是否有任何方法可以使用akka http通知所有无效的查询参数,例如格式错误的QueryParamRejection
,但会报告所有无效的查询参数,例如格式错误的QueryParamsRejection
(复数)?使用。例如:
RejectionHandler.newBuilder()
.handleAll[MalformedQueryParamRejection] { paramRejections =>
// paramRejections is a Seq[MalformedQueryParamRejection]
val malformedParamNames = paramRejections.map(_.parameterName)
...
}
...
我已为此提出了一个功能请求: