Akka Http参数验证

时间:2017-09-05 18:32:54

标签: scala akka akka-http

我的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方法具有相同的参数(需要相同的验证),所以如果有'用最少量的样板来实现这一目标的方法,这将是伟大的。谢谢你的任何建议!

0 个答案:

没有答案