目前我正在尝试重构API而不会破坏更改。尝试将其从host:port/foo/bar
迁移到host:port/bar
,我想知道在单个操作中是否支持Scalatra多个路由。我试着这样:
get("/foo/bar", "/bar") {
Ok(200)
}
它返回任何端点上的空响应,响应代码为0,所以我有点不解。 Scalatra支持吗?
我知道在春天看起来像https://stackoverflow.com/a/5517486/4682816但我很好奇Scalatra中有什么东西
答案 0 :(得分:2)
Scalatra支持多个变换器用于操作,但它表示在所有变换器匹配时调用的操作。这用于为路由添加其他条件。
在您的情况下,请求路径无法与"/foo/bar"
和"/bar"
匹配,因此我猜这个操作永远不会被调用。
您可以改为:
get("/foo/bar"){
bar()
}
get("/bar"){
bar()
}
private def bar() = {
Ok(200)
}
或者您可以使用正则表达式:
get("^(/bar)|(/foo/bar)$".r){
Ok(200)
}