akka-http - akka http Route orElse
问题描述
使用 akka http,我getFromDirectory()
用来提供目录中的文件。我怎么能说如果在目录中找不到请求的文件,则将其查看到另一个目录?
像这样的东西:
lazy val userRoutes: Route =
pathPrefix("files") {
getFromDirectory("./static")
.orElse(getFromDirectory(".generated1")) // this orElse function does not exist. how to achive something like this?
.orElse(getFromDirectory(".generated2")) // this orElse function does }
解决方案
你可以有这样的东西
val route =
pathPrefix("prefix") {
List("/tmp", "/home/john", "/home/john/Downloads/").map(getFromDirectory).reduceLeft(_ ~ _)
}
在这里,它为所有文件夹组成路由,并且由于它reject
在找不到文件时使用,它将回退到下一个路由
您可以reduceLeft
在getFromBrowseableDirectories
推荐阅读
- python - 如何使用 pandas 在 Python 中识别日期列并将其格式化为 YYYY-MM-DD?
- visual-studio-code - Visual Studio Code 的“导入类”
- java - JAVA_HOME 设置为无效目录,但 echo %JAVA_HOME% 仍然有效
- java - 我对第 5 个欧拉项目(Java)问题(LCM 为 1 到 20)的解决方案可以优化吗?
- go - VSCode go 扩展:无法导入错误
- c - 如何在内核空间调用系统调用?
- python - 如何在 Python 中将两个数字 9 和 3 作为特殊数字?
- go - 为什么不允许在类型断言之后直接为结构的字段赋值?
- java - 理解 JSON 数组请求有问题?
- netlogo - 同一品种的两个特工