如何在akka-http中有条件地添加路由路径?

d7v8vwbk  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(159)

我有一系列的路径看起来像

path("slides" / Segment) { segment =>
  getFromDirectory(s"${cfg.slidesDir}/$segment")
} ~
path("foo" / Segment) { segment =>
  getFromDirectory(s"${cfg.mypyPursDir}/$segment")
} ~
path("foo" / "images" / Segment) { segment =>
  getFromDirectory(s"${cfg.mypyPursImageDir}/$segment")
}

在某些运行时条件下,其中一些可能是不活动的(例如生产系统和开发系统)。如何启用这种条件性?我可以想象用if-else编码,例如,如果有一个“伪路径”不做任何事情。

4xrmg8kj

4xrmg8kj1#

使用标准Scala过滤和List构建操作创建一个包含所有路由的List,然后使用concat创建一个包含所有选定路由的路由。

val allRoutes: List[Route] = ???
val activeRoutes = allRoutes.filter(???)

def route =
  concat(activeRoutes:_*)

对于链接路线,我更喜欢concat而不是~

相关问题