将Akka Http服务的一些路径参数更改为查询参数

时间:2018-10-08 13:10:47

标签: scala akka akka-http spray

我有以下采用路径参数的代码;

def candlesRange: Route = (path("candles" / Segment / Segment / IntNumber / LongNumber / LongNumber) & get) {
  (a1, a2, tf, t1, t2) => complete(apiController.apiGetCandlesRange(a1, a2, tf, t1, t2))
}

但是我想将某些参数更改为查询参数。因此,URL将遵循以下格式:

/candles/Asset1/Asset2/timeStart=1507198441000&timeEnd=1512382501000&interval=60m

并将它们传递给相同的方法(也许甚至从分钟中删除了“ m”,因为该方法的参数是一个整数)

如何在Scala Akka Http中更改此路由以执行此操作。我能找到的唯一示例使用路径参数

1 个答案:

答案 0 :(得分:4)

在此处了解有关parameters的信息:https://doc.akka.io/docs/akka-http/current/routing-dsl/directives/parameter-directives/parameters.html

val candlesRange: Route = (path("candles" / Segment / Segment / )) { (a1, a2) =>
    get {
        parameters('timeStart, 'timeEnd, 'interval) { (timeStart, timeEnd, interval) => 
            complete(apiController.apiGetCandlesRange(a1, a2, timeStart, timeEnd, interval))
    }
}