【问题标题】:How to conditionally add route paths in akka-http?如何有条件地在akka-http中添加路由路径?
【发布时间】:2020-04-27 13:22:02
【问题描述】:

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

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 对其进行编码。

【问题讨论】:

    标签: scala akka akka-http


    【解决方案1】:

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

    val allRoutes: List[Route] = ???
    val activeRoutes = allRoutes.filter(???)
    
    def route =
      concat(activeRoutes:_*)
    

    我更喜欢 concat 而不是 ~ 来链接路由。

    【讨论】:

      猜你喜欢
      • 2017-04-20
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      • 1970-01-01
      • 1970-01-01
      • 2022-10-08
      相关资源
      最近更新 更多