我希望能够通过喷涂路由接收和处理请求,这将触发(在非常短的内部处理之后)重定向到另一个页面。我需要在重定向之前进行处理,因此使用redirect("/")
是不够的。
到目前为止,我发现的唯一方法是编写一个完整的路由处理程序,但必须有一个我似乎无法理解的更简单的方法......
path("download") {
get { ctx ⇒
downloadInitiator.scheduleBackgroundDownload()
ctx.redirect("/", StatusCodes.Found)
}
}
编辑:要清楚,想象一下Spray服务器需要做一个非常小的,几乎荒谬的处理(让我们说在发送一个fire-and-forget消息到Akka集群之后) person已发布联系表单)然后执行重定向。
例如,一个完美的解决方案是,如果Spray允许redirect
调用接收某种懒惰的可执行函数(就像现在complete
的情况一样)而不是终止语句。