scala - 如何有条件地在akka-http中添加路由路径?
问题描述
我有一系列看起来像的路径;
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 过滤和构建操作创建List
您想要的所有路由。List
然后用于concat
创建包含所有选定路线的路线。
val allRoutes: List[Route] = ???
val activeRoutes = allRoutes.filter(???)
def route =
concat(activeRoutes:_*)
我更喜欢concat
链接~
路线。
推荐阅读
- css - 语义 UI 调整分隔线部分的大小?
- flutter - Flutter 构建 APK 失败
- json - 通过 Postman 发送请求时出现 org.mozilla.javascript.Undefined@7dee967 错误
- javascript - 从 jsp 文件访问变量
- python - 将距离 (m) 转换为十进制度
- java - Kafka Config 未加载引导服务器地址
- javascript - ReactJs - 无法将数据映射到表行和列
- python - 即使 env 变量和 API 设置正确,ARA 异常
- php - 使用 Laravel 中的关系作为子查询来获取结果
- c# - 使用 roslyn 实现 LCOM3 指标