我的get
服务有几条akka-http
路由;它们都有以下形式:
pathPrefix("compass") {
path("route") {
parameters(('srclat.as[Double], 'srclon.as[Double],
'destlat.as[Double], 'destlon.as[Double])) {
(srclat, srclon, destlat, destlon) =>
complete(getRoute((LatLong(srclat, srclon), LatLong(destlat,
destlon))))
}
}
}
使用Cats Validated数据类型,我可以验证传递给方法的纬度和经度,收集超出List[String]
范围内的任何值。我知道那里有validate
指令,但我不确定它是否适用于应用(累积)样式验证(所以如果多个参数错误,我会得到一个列表错误),但我不确定如何使用validate
指令,或者是否有首选方式。
此外,我知道parameters
是一个指令,应该可以重复使用 - 我有3个get
方法具有相同的参数(需要相同的验证),所以如果有'用最少量的样板来实现这一目标的方法,这将是伟大的。谢谢你的任何建议!